Skip to content

DNS ​

dns 定义命名上游服务器、规则、兜底服务器,以及代理服务器名字专用的 bootstrap 解析路径。

yaml
dns:
  servers:
    real:
      type: udp
      address: 127.0.0.1:53
    fake:
      type: fakeip
      inet4_range: 198.18.0.0/15
      check_aaaa: real
  rules:
    - {domain_suffix: [lan], server: fake}
  final: real
  cache: 4096
  optimistic: 1h
  strategy: prefer_ipv4
  timeout: 5s

字段 ​

servers ​

  • 类型:名字到 DNS 服务器 的映射。
  • 默认:空。
  • 行为:每个服务器把 type 写在第一项;名字在同一映射中唯一。

rules ​

  • 类型:DNS 规则数组。
  • 默认:空。
  • 行为:按顺序遍历,第一条成立规则的动作决定是否继续。

final ​

  • 类型:DNS 服务器名。
  • 必填:可选。
  • 默认:首个会向别处询问的真实上游。
  • 限制:必须存在;没有可选真实上游时 check 失败。

cache ​

  • 类型:非负整数。
  • 默认:4096。
  • 行为:响应缓存容量。

optimistic ​

  • 类型:时长。
  • 必填:可选。
  • 默认:过期后不再提供旧响应。
  • 行为:TTL 过期后最多继续提供旧响应这么久,同时在后台刷新。

disable_expire ​

  • 类型:布尔值。
  • 默认:false。
  • 行为:缓存项永不过期,直到被容量淘汰。
  • 限制:不能与 optimistic 同时出现。

bootstrap ​

  • 类型:DNS 服务器名。
  • 必填:可选。
  • 默认:无。
  • 行为:专门解析代理服务器自己的名字,不经过 DNS 规则或出站代理。
  • 限制:必须存在、不是主机名上游,也不能经 via 出站;任何上游写 via 时必须有可用的 bootstrap。

strategy ​

  • 类型:字符串枚举。
  • 必填:可选。
  • 取值:as_is、prefer_ipv4、prefer_ipv6、ipv4_only、ipv6_only。
  • 行为:所有查询的默认地址族策略;规则自己的设置优先。

client_subnet ​

  • 类型:IP 地址或 CIDR。
  • 必填:可选。
  • 行为:默认随查询发送的 EDNS Client Subnet;裸 IPv4 视为 /24,裸 IPv6 视为 /56。

timeout ​

  • 类型:时长。
  • 必填:可选。
  • 默认:5s。
  • 行为:等待上游响应的默认时间;规则自己的设置优先。

说明 ​

DNS 与路由共用 RuleSpec 的匹配语法。DNS 专用的响应匹配与动作见 DNS 规则 和 DNS 规则动作。

上游的 via 表示用某条出站承载查询;domain_resolver 表示上游地址写成主机名时用哪个 DNS 服务器解析它。完整边界见 DNS 服务器总览 和各类型页。

相关 ​

页面历史

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