---
url: /configuration/route.md
description: 路由规则、兜底出站和邻居/DNS/下载默认值
---

# 路由

`route` 决定一条流由哪条规则处理、没命中时走哪个出站，并给出邻居查询、默认下载客户端和出站域名解析的默认值。

```yaml check
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

* 类型：[路由规则](/configuration/route/rule)数组。
* 默认：空。
* 行为：按数组顺序匹配，第一条成立规则的[动作](/configuration/route/rule-action)决定处理；`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](/configuration/mode)。

规则集不属于 `route` 内嵌字段；它们写在顶层 `rule_sets`，规则用 `rule_set` 引用。详见 [rule_set](/configuration/route/rule-set)。

## 相关

* [路由规则](/configuration/route/rule)
* [规则动作](/configuration/route/rule-action)
* [协议探测](/configuration/route/sniff)
* [rule_set](/configuration/route/rule-set)
* [DNS 总览](/configuration/dns/)
