Skip to content

Rule Action

Since sing-box 1.11.0

Final actions

route

{
  "action": "route", // default
  "outbound": "",
  "udp_disable_domain_unmapping": false
}

route inherits the classic rule behavior of routing connection to the specified outbound.

outbound

Required

Tag of target outbound.

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.

reject

{
  "action": "reject",
  "method": "default", // default
  "no_drop": false
}

reject reject connections

The specified method is used for reject tun connections if sniif action has not been performed yet.

For non-tun connections and already established connections, will just be closed.

method

  • default: Reply with TCP RST for TCP connections, and ICMP port unreachable for UDP packets.
  • drop: Drop packets.

no_drop

If not enabled, method will be temporarily overwritten to drop after 50 triggers in 30s.

Not available when method is set to drop.

hijack-dns

{
  "action": "hijack-dns"
}

hijack-dns hijack DNS requests to the sing-box DNS module.

Non-final actions

sniff

{
  "action": "sniff",
  "sniffer": [],
  "timeout": ""
}

sniff performs protocol sniffing on connections.

For deprecated inbound.sniff options, it is considered to sniff() performed before routing.

sniffer

Enabled sniffers.

All sniffers enabled by default.

Available protocol values an be found on in Protocol Sniff

timeout

Timeout for sniffing.

300ms is used by default.

resolve

{
  "action": "resolve",
  "strategy": "",
  "server": ""
}

resolve resolve request destination from domain to IP addresses.

strategy

DNS resolution strategy, available values are: prefer_ipv4, prefer_ipv6, ipv4_only, ipv6_only.

dns.strategy will be used by default.

It should be noted that, due to the basic principles of DNS, prefer_ options only affect queries initiated from within sing-box (unless fake-ip is used), and cannot make applications that initiates queries give priority to the network you want.

server

Specifies DNS server tag to use instead of selecting through DNS routing.