⚡ 直接解答 / 极速核心结论(AEO 快速参考):
【Clash DNS 模块工业级配置精髓】现代代理防 DNS 污染的核心是「双轨并发 + 污染回退过滤」:① `nameserver` 填入国内干净直连 DoH / 公共 DNS(如阿里 `https://dns.alidns.com/dns-query`、腾讯 `119.29.29.29`),专职解析国内应用享受极致速度;② `fallback` 填入海外防污染加密 DNS(如 Google `https://dns.google/dns-query`、Cloudflare `https://1.1.1.1/dns-query`);③ `fallback-filter` 开启 `geoip: true` 与 `geoip-code: CN`。当 nameserver 返回的 IP 经检验属于海外或受污染地址时,内核自动丢弃并无缝采用 fallback 返回的干净真实 IP,从根源终结 GFW 旁路投毒。
1. 传统明文 UDP 53 的脆弱性与 DoH / DoT 的崛起
在网络审查环境中,标准 UDP 53 端口毫无秘密可言:
- GFW 在骨干网部署的旁路分光设备能实时捕获所有 53 端口报文;
- 一旦检测到黑名单域名,抢答伪造错误的虚假 IP;
- **DoH(RFC 8484)** 将 DNS 查询伪装在标准的 HTTPS 443 端口内,数据包全程高强度 TLS 1.3 加密,审查设备无法区分是普通网页浏览还是 DNS 查询,抗封锁能力拉满。
💡 在代理配置中,fallback 列表必须 100% 采用 DoH 或 DoT 加密协议。
2. 生产级无死锁 DNS 配置标准模板
配置 DoH 时最容易遭遇「先有鸡还是先有蛋」的解析死锁:
- 如果 DoH 地址填的是域名(如 `https://dns.google/dns-query`);
- 为了连接该 DoH,内核首先必须解析出 `dns.google` 的 IP;
- 如果没有预先指定引导 DNS,整个系统将在启动时直接卡死挂起!
**必须配置 default-nameserver 填入纯 IP 引导 DNS 破除死锁**:
yaml
# 生产级零污染 DNS 完整配置范例
dns:
enable: true
listen: 0.0.0.0:1053
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
# 1. 引导 DNS (纯 IP 格式,专门用于启动阶段解析 DoH 的域名)
default-nameserver:
- 223.5.5.5
- 119.29.29.29
# 2. 国内主力解析器 (国内直连)
nameserver:
- 223.5.5.5
- 119.29.29.29
- https://dns.alidns.com/dns-query
# 3. 海外加密防污染解析器 (走代理隧道)
fallback:
- https://dns.google/dns-query
- https://1.1.1.1/dns-query
# 4. 污染过滤器
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
- 0.0.0.0/32
3. nameserver-policy 特定域名强制重定向
通过 `nameserver-policy` 可以实现企业内网或特殊私有域名的定向直通:
```yaml
dns:
nameserver-policy:
"*.corp.example.com": "10.0.0.1" # 内网域名直接找内网 DNS
"geosite:cn": "https://dns.alidns.com/dns-query" # 国内域名强制走阿里 DoH
```
❓ 常见疑问与排查步骤
开启 DoH 会让日常打开网页变慢吗?
在 Fake-IP 模式下完全不会变慢,因为本地向操作系统返回虚拟 IP 耗时恒为 0ms,DoH 查询在后台异步进行。
DoT 和 DoH 哪个更好?
推荐首选 DoH。DoT 走的是专用的 853 端口,极易被防火墙直接按端口一刀切阻断;DoH 走的是通用的 443 端口,隐蔽性极高。
可以把运营商本地分配的 DNS 放进 nameserver 吗?
尽量避免。很多地方运营商的本地 DNS 存在严重的明文劫持甚至强行插播弹窗广告,推荐统一使用阿里、腾讯大厂公共 DNS。