路由
route 决定一条流由哪条规则处理、没命中时走哪个出站,并给出邻居查询、默认下载客户端和出站域名解析的默认值。
yaml
rule_sets:
private:
rules:
- ip_is_private: true
outbounds:
direct:
type: direct
proxy:
type: socks
server: proxy.example:1080
route:
rules:
- {rule_set: private, outbound: direct}
- {domain_suffix: [example.com], outbound: proxy}
final: proxy
find_neighbor: true
dhcp_lease_files: [/tmp/dhcp.leases]
default_domain_resolver: default
dns:
servers:
default: {type: udp, address: 127.0.0.1:53}
final: default字段
rules
final
- 类型:出站名。
- 必填:可选。
- 默认:
outbounds的第一个出站;没有出站时为内建DIRECT。 - 注意:内部字段名是
last,YAML 必须写final。
dhcp_lease_files
- 类型:路径数组。
- 默认:空数组。
- 行为:按地址查询 dnsmasq、odhcpd、ISC dhcpd 或 Kea 租约文件,提供
source_mac_address和source_hostname。相对路径以数据目录为基准。
find_neighbor
- 类型:布尔值。
- 默认:
false。 - 行为:链路没有带来源 MAC 时,按需从内核邻居表补查。
default_http_client
- 类型:
http_clients中的名字。 - 必填:可选。
- 默认:普通 HTTP 客户端。
- 行为:规则集或 provider 没有自己的
http_client时使用它。
default_domain_resolver
- 类型:DNS 服务器名。
- 必填:可选。
- 默认:bootstrap 服务器,再退回 DNS 规则。
- 行为:出站没有自己的
domain_resolver时,用它解析代理服务器的主机名。
说明
当前运行模式在规则之前生效:global 走内建 GLOBAL,direct 走内建 DIRECT,rule 才遍历 route.rules。模式见 mode。
规则集不属于 route 内嵌字段;它们写在顶层 rule_sets,规则用 rule_set 引用。详见 rule_set。