Skip to content

Listen Fields

Structure

{
  "listen": "::",
  "listen_port": 5353,
  "tcp_fast_open": false,
  "tcp_multi_path": false,
  "udp_fragment": false,
  "udp_timeout": "5m",
  "detour": "another-in",
  "sniff": false,
  "sniff_override_destination": false,
  "sniff_timeout": "300ms",
  "domain_strategy": "prefer_ipv6",
  "udp_disable_domain_unmapping": false
}

Fields

Field Available Context
listen Needs to listen on TCP or UDP.
listen_port Needs to listen on TCP or UDP.
tcp_fast_open Needs to listen on TCP.
tcp_multi_path Needs to listen on TCP.
udp_timeout Needs to assemble UDP connections.
udp_disable_domain_unmapping Needs to listen on UDP and accept domain UDP addresses.

listen

Required

Listen address.

listen_port

Listen port.

tcp_fast_open

Enable TCP Fast Open.

tcp_multi_path

Go 1.21 required.

Enable TCP Multi Path.

udp_fragment

Enable UDP fragmentation.

udp_timeout

UDP NAT expiration time in seconds.

5m is used by default.

detour

If set, connections will be forwarded to the specified inbound.

Requires target inbound support, see Injectable.

sniff

Enable sniffing.

See Protocol Sniff for details.

sniff_override_destination

Override the connection destination address with the sniffed domain.

If the domain name is invalid (like tor), this will not work.

sniff_timeout

Timeout for sniffing.

300ms is used by default.

domain_strategy

One of prefer_ipv4 prefer_ipv6 ipv4_only ipv6_only.

If set, the requested domain name will be resolved to IP before routing.

If sniff_override_destination is in effect, its value will be taken as a fallback.

udp_disable_domain_unmapping

If enabled, for UDP proxy requests addressed to a domain, the original packet address will be sent in the response instead of the mapped domain.

This option is used for compatibility with clients that do not support receiving UDP packets with domain addresses, such as Surge.