现象与直接结论
如果你能连上节点、延迟也正常,却打不开某些网站或跳到错误页面,先怀疑 DNS 污染。 解决方向通常是:在客户端启用 fake-ip 模式,或换用可靠的 DNS。
DNS 负责把域名翻译成 IP。污染发生时,你拿到的是错误的解析结果,于是“路是通的,门牌号却是假的”。
什么是 DNS 污染
当你访问一个域名,系统先向 DNS 查询它的 IP。如果这一步被投毒,返回了错误 IP,浏览器就会连到错误目标——表现为打不开、超时或跳到无关页面。这与节点本身能不能连是两回事。
底层机制:为什么明文 DNS 这么容易被污染
传统 DNS 查询走 UDP 53 端口,明文、无加密、无验证,客户端默认相信第一个到达的应答。这就留下两个缺口:一是抢答(投毒),链路中间的设备抢在真正的 DNS 服务器之前伪造应答塞回来,因为离你更近、更快,设备就采信了假 IP;二是缓存传染,错误解析被本机、路由器乃至上游缓存下来,一段时间内持续生效。
理解这一点就抓住了解决思路的核心:要么绕开明文 DNS(加密查询或让代理侧解析),要么不依赖本地拿到的 IP。
和「节点连不上」「网站本身故障」的区别
| 现象 | 更像哪种问题 |
|---|---|
| 所有节点都超时/标红 | 节点或本地网络问题,不是 DNS |
| 能连节点,但某几个网站打不开/跳错页 | 典型 DNS 污染 |
| 换 DNS 或开 fake-ip 后立刻恢复 | 基本确认是 DNS |
| 全网站都打不开,仅这一个不行 | 更可能是该网站本身故障 |
怎么判断
按下面几点交叉判断:
- 能连节点、延迟正常,但只有部分网站异常 → 更像 DNS,而非线路问题。
- 切换到客户端的全局模式后仍异常 → 排除了分流规则误伤。
- 启用 fake-ip 或更换 DNS 后恢复 → 基本可确认是 DNS。
如果是所有节点都超时/标红,则不是 DNS,而应看节点全红、延迟过高的排查。
用命令行做一次交叉验证
想更确定,可以用系统自带工具查同一个域名,对比不同 DNS 的结果:
nslookup example.com # 本地默认 DNS
nslookup example.com 1.1.1.1 # 指定境外 DNS 再查一次
如果两次返回的 IP 明显不同,尤其本地 DNS 给出的是连不通或指向无关服务的地址,就高度怀疑污染。这只是「判断」手段,真正解决靠下面在客户端做配置。
解决办法一:启用 fake-ip
| 模式 | 解析方式 | 抗污染 |
|---|---|---|
| redir-host | 依赖真实域名解析,受本地 DNS 影响 | 弱 |
| fake-ip | 客户端分配虚拟 IP,解析交给代理侧 | 强 |
大多数机场的 Clash 订阅默认就是 fake-ip。若你手动改过配置,确认 DNS 段的 enhanced-mode 为 fake-ip。一个典型的 DNS 段大致长这样(示意,具体以机场订阅为准):
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://1.1.1.1/dns-query # 境外加密 DNS,交给代理侧
fallback:
- https://8.8.8.8/dns-query
要点是:enhanced-mode 为 fake-ip,上游走 DoH 这类加密地址,让真正的解析在代理出口那侧完成,从而绕开本地污染。客户端基础操作见 Clash Verge 教程。
解决办法二:更换 DNS
在客户端 DNS 配置里,把上游 DNS 换成可靠地址(如加密 DNS / DoH),减少明文 DNS 被污染的机会。要点:
- 分流解析:国内域名走国内 DNS(解析快、就近访问),国外域名交给代理侧解析,兼顾速度与抗污染。
- 优先加密查询:DoH(基于 HTTPS)、DoT(基于 TLS)把 DNS 请求包在加密通道里,中途设备看不到你查什么、也无法伪造应答。
- 避免混用:不要一边开加密 DNS、一边又让系统用明文 53 端口兜底,否则仍可能从明文那条路被污染。
解决办法三:系统层面
- 临时更换系统 DNS 再测,验证是否本机 DNS 缓存问题。
- 清除 DNS 缓存后重试(Windows 用
ipconfig /flushdns,macOS 用sudo killall -HUP mDNSResponder)。 - 换浏览器或用无痕窗口访问,排除浏览器自身缓存了污染结果。
按客户端处理差异
- Clash 系(Clash Verge / Mihomo):DNS 配置集中在订阅 YAML 的
dns:段,改完需重载生效;桌面端建议同时开启 TUN 模式,让系统级 DNS 也被接管。 - Shadowrocket(iOS):在「设置 → DNS」里可指定 DNS 服务器与 DoH,配合「增强模式」使用。
- sing-box / Stash 等:写法不同但思路一致——境内境外分流、境外走加密上游,可参考各自的配置教程。
预防与日常习惯
尽量沿用机场提供的官方订阅配置,它们通常已把 fake-ip 和分流 DNS 调好,别随意删改 dns: 段;手动改坏了就先「恢复默认订阅」再排查,能快速区分是配置问题还是网络问题。
仍未解决
如果启用 fake-ip、换过 DNS 仍打不开特定网站,可能是该站点本身故障,或订阅规则把它错误分流。可先切全局模式排除规则问题,再对照订阅失效与连不上的排查。若你打不开的是流媒体,且节点其它一切正常,那更可能不是 DNS 而是出口 IP 的解锁问题,见流媒体解锁原理。