2024-11-06 11:02:55 +00:00
|
|
|
---
|
|
|
|
icon: material/new-box
|
|
|
|
---
|
|
|
|
|
|
|
|
## Final actions
|
|
|
|
|
|
|
|
### route
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"action": "route", // default
|
2024-11-11 09:24:15 +00:00
|
|
|
"outbound": "",
|
2024-11-12 14:57:15 +00:00
|
|
|
"network_strategy": "",
|
|
|
|
"fallback_delay": "",
|
2024-11-11 09:24:15 +00:00
|
|
|
"udp_disable_domain_unmapping": false,
|
|
|
|
"udp_connect": false
|
2024-11-06 11:02:55 +00:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
`route` inherits the classic rule behavior of routing connection to the specified outbound.
|
|
|
|
|
|
|
|
#### outbound
|
|
|
|
|
|
|
|
==Required==
|
|
|
|
|
|
|
|
Tag of target outbound.
|
|
|
|
|
2024-11-12 14:57:15 +00:00
|
|
|
#### network_strategy
|
|
|
|
|
|
|
|
!!! quote ""
|
|
|
|
|
|
|
|
Only supported in graphical clients on Android and iOS with `auto_detect_interface` enabled.
|
|
|
|
|
|
|
|
Strategy for selecting network interfaces.
|
|
|
|
|
|
|
|
Only take effect if outbound is direct without `outbound.bind_interface`,
|
|
|
|
`outbound.inet4_bind_address` and `outbound.inet6_bind_address` set.
|
|
|
|
|
|
|
|
See [Dial Fields](/configuration/shared/dial/#network_strategy) for available values.
|
|
|
|
|
|
|
|
#### fallback_delay
|
|
|
|
|
|
|
|
!!! quote ""
|
|
|
|
|
|
|
|
Only supported in graphical clients on Android and iOS with `auto_detect_interface` enabled and `network_strategy` set.
|
|
|
|
|
|
|
|
See [Dial Fields](/configuration/shared/dial/#fallback_delay) for details.
|
|
|
|
|
2024-11-06 11:02:55 +00:00
|
|
|
#### 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.
|
|
|
|
|
|
|
|
#### udp_connect
|
|
|
|
|
|
|
|
If enabled, attempts to connect UDP connection to the destination instead of listen.
|
|
|
|
|
2024-11-11 09:24:15 +00:00
|
|
|
### route-options
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"action": "route-options",
|
2024-11-12 14:57:15 +00:00
|
|
|
"network_strategy": "",
|
|
|
|
"fallback_delay": "",
|
2024-11-11 09:24:15 +00:00
|
|
|
"udp_disable_domain_unmapping": false,
|
|
|
|
"udp_connect": false
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
`route-options` set options for routing.
|
|
|
|
|
2024-11-06 11:02:55 +00:00
|
|
|
### reject
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"action": "reject",
|
|
|
|
"method": "default", // default
|
|
|
|
"no_drop": false
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
`reject` reject connections
|
|
|
|
|
|
|
|
The specified method is used for reject tun connections if `sniff` 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
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"action": "hijack-dns"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
`hijack-dns` hijack DNS requests to the sing-box DNS module.
|
|
|
|
|
|
|
|
## Non-final actions
|
|
|
|
|
|
|
|
### sniff
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"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](../sniff/)
|
|
|
|
|
|
|
|
#### timeout
|
|
|
|
|
|
|
|
Timeout for sniffing.
|
|
|
|
|
|
|
|
`300ms` is used by default.
|
|
|
|
|
|
|
|
### resolve
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"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.
|
|
|
|
|
|
|
|
#### server
|
|
|
|
|
|
|
|
Specifies DNS server tag to use instead of selecting through DNS routing.
|