Skip to content

Proxy request timing ​

The proxy_request_timing key of a Trojan or VLESS outbound. The client holds its proxy request until the application's first bytes, so both leave in one write. A request sent alone is a small packet of a fixed length, which DPI can recognise.

Structure ​

json
{
  "max_delay": "400ms",
  "skip": { "enabled": false, "ports": [21, 25, 110, 143, 587, 3306] }
}

Fields ​

max_delay ​

durationDefault: 400ms

The longest the request waits for the first bytes before it is sent alone.

skip.enabled ​

booleanDefault: false

Send the request at once for the ports in skip.ports. Their protocols (FTP, SMTP, POP3, IMAP, MySQL) wait for the server to speak first, so otherwise they start max_delay late. The cost is the recognisable lone request.

skip.ports ​

list of integersDefault: [21, 25, 110, 143, 587, 3306]

Destination ports that skip the wait. Writing it replaces the default list.

UDP is not affected: a UDP session sends its request with its first datagram.