Skip to content

Route

Changes in sing-box 1.8.0

rule_set
geoip
geosite

Structure

{
  "route": {
    "geoip": {},
    "geosite": {},
    "rules": [],
    "rule_set": [],
    "final": "",
    "auto_detect_interface": false,
    "override_android_vpn": false,
    "default_interface": "en0",
    "default_mark": 233,
    "udp_disable_domain_unmapping": false,
    "stop_always_resolve_udp": false,
    "concurrent_dial": false,
    "keep_alive_interval": "15s"
  }
}

Fields

Key Format
geoip GeoIP
geosite Geosite

rules

List of Route Rule

rule_set

Since sing-box 1.8.0

List of rule-set

final

Default outbound tag. the first outbound will be used if empty.

auto_detect_interface

Only supported on Linux, Windows and macOS.

Bind outbound connections to the default NIC by default to prevent routing loops under tun.

Takes no effect if outbound.bind_interface is set.

override_android_vpn

Only supported on Android.

Accept Android VPN as upstream NIC when auto_detect_interface enabled.

default_interface

Only supported on Linux, Windows and macOS.

Bind outbound connections to the specified NIC by default to prevent routing loops under tun.

Takes no effect if auto_detect_interface is set.

default_mark

Only supported on Linux.

Set routing mark by default.

Takes no effect if outbound.routing_mark is set.

stop_always_resolve_udp

If not set, the requested domain name will be resolved to IP before routing when the inbound stream is udp.

If domain_strategy is not in effect, domain will be resolved with dns.rules.

concurrent_dial

If not set, every dial will be triple-concurrently. The fastest connection opened will be returned.

keep_alive_interval

The period between TCP keep-alives. 15s will be used if empty.

A period string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".