Skip to content

路由 ​

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 ​

  • 类型:路由规则数组。
  • 默认:空。
  • 行为:按数组顺序匹配,第一条成立规则的动作决定处理;PASS 或 PASS-RULE 继续下一条。

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。

相关 ​

页面历史

开发者设计、代码地图和验证记录保留在仓库 manual/。