现象与直接结论

如果你能连上节点、延迟也正常,却打不开某些网站或跳到错误页面,先怀疑 DNS 污染。 解决方向通常是:在客户端启用 fake-ip 模式,或换用可靠的 DNS。

DNS 负责把域名翻译成 IP。污染发生时,你拿到的是错误的解析结果,于是“路是通的,门牌号却是假的”。

什么是 DNS 污染

当你访问一个域名,系统先向 DNS 查询它的 IP。如果这一步被投毒,返回了错误 IP,浏览器就会连到错误目标——表现为打不开、超时或跳到无关页面。这与节点本身能不能连是两回事。

底层机制:为什么明文 DNS 这么容易被污染

传统 DNS 查询走 UDP 53 端口,明文、无加密、无验证,客户端默认相信第一个到达的应答。这就留下两个缺口:一是抢答(投毒),链路中间的设备抢在真正的 DNS 服务器之前伪造应答塞回来,因为离你更近、更快,设备就采信了假 IP;二是缓存传染,错误解析被本机、路由器乃至上游缓存下来,一段时间内持续生效。

理解这一点就抓住了解决思路的核心:要么绕开明文 DNS(加密查询或让代理侧解析),要么不依赖本地拿到的 IP

和「节点连不上」「网站本身故障」的区别

现象更像哪种问题
所有节点都超时/标红节点或本地网络问题,不是 DNS
能连节点,但某几个网站打不开/跳错页典型 DNS 污染
换 DNS 或开 fake-ip 后立刻恢复基本确认是 DNS
全网站都打不开,仅这一个不行更可能是该网站本身故障

怎么判断

按下面几点交叉判断:

  1. 能连节点、延迟正常,但只有部分网站异常 → 更像 DNS,而非线路问题。
  2. 切换到客户端的全局模式后仍异常 → 排除了分流规则误伤。
  3. 启用 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-modefake-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-modefake-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 的解锁问题,见流媒体解锁原理