基础字段
enable必须是否启用内置 DNS 服务器。绝大多数场景(尤其是用 TUN 模式)都需要打开。
listen可选DNS 服务监听地址,如 0.0.0.0:1053,局域网设备也可以把它当成普通 DNS 服务器使用。
ipv6可选是否解析 IPv6 结果,需要和顶层 ipv6: true 搭配才会生效。
use-hosts / use-system-hosts可选是否使用配置文件里的 hosts 字段,以及是否使用系统的 hosts 文件。
respect-rules可选DNS 请求本身是否也遵循 rules 路由规则来选择出站方式,配合 proxy-server-nameserver 使用。
增强模式
enhanced-modefake-ip / redir-hostfake-ip:给每个域名分配一个虚假但唯一的内网 IP,连接时再还原成真实目标;速度快、兼容性好,是绝大多数场景(尤其是 TUN 模式)的推荐选择。redir-host:直接返回真实解析结果,兼容性稍差(部分需要 SNI 分流的场景可能受影响),但对不支持 fake-ip 网段的旧客户端更友好。
fake-ip-range198.18.0.1/16fake-ip 使用的地址段,一般无需修改。
fake-ip-filter-mode / fake-ip-filter可选指定哪些域名不使用 fake-ip(直接走真实解析),常用于内网域名、本机服务发现等场景,支持 域名通配符。
dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 fake-ip-filter-mode: blacklist fake-ip-filter: - '*.lan'
解析服务器
default-nameserver可选用来解析 nameserver/fallback 里域名形式服务器地址的"引导" DNS,这里只能填 IP,不能填域名。
nameserver必须默认的域名解析服务器列表,支持 UDP/TCP/DoT/DoH/DoQ 等多种协议写法,详见 DNS 类型。
nameserver-policy可选按域名 / geosite: / rule-set: 指定专用解析服务器,优先级高于 nameserver,常用于"国内域名走国内 DNS,国外域名走国外 DNS"。
fallback / fallback-filter可选fallback 是备用解析服务器(通常填境外 DNS);fallback-filter 决定什么情况下的解析结果要"怀疑"并改用 fallback 重新查(比如返回了国内 IP 但域名疑似被污染)。
direct-nameserver / direct-nameserver-follow-policy可选专门给"匹配到直连规则"的域名使用的解析服务器,配合 direct-nameserver-follow-policy 决定是否仍然遵循 nameserver-policy。
proxy-server-nameserver / proxy-server-nameserver-policy可选专门用于解析代理服务器自身域名(比如你的机场节点域名)的 DNS,避免和用户流量解析混在一起产生"鸡生蛋"问题。
default-nameserver: - 223.5.5.5 nameserver-policy: '+.arpa': '10.0.0.1' 'rule-set:cn': - https://doh.pub/dns-query - https://dns.alidns.com/dns-query nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query fallback: - tls://8.8.4.4 - tls://1.1.1.1 fallback-filter: geoip: true geoip-code: CN geosite: - gfw ipcidr: - 240.0.0.0/4 domain: - '+.google.com'
整套解析优先级顺序、以及各字段如何配合工作,见下一篇 解析流程。
附加参数
| 写法 | 说明 |
|---|---|
#proxy_name | 优先使用同名代理节点发起 DNS 查询,找不到该名称的代理则改用同名网络接口连接,如 https://1.1.1.1/dns-query#proxy1 |
#RULES | 让这条 DNS 查询也遵循路由规则连接,等价于单独给这条打开 respect-rules |
#h3=true | 强制该 DoH 服务器使用 HTTP/3 建立连接,需要服务器本身支持 H3 |
#ecs=1.1.1.1/24 | DoH 请求携带 EDNS Client Subnet,让 CDN 按这个子网就近返回结果 |
#ecs-override=true | 强制覆盖请求中已有的 ECS subnet |