跳到主要内容
梯子博客

问题解决

DNS 问题排查:DNS 污染、泄露与解析失败的原因和客户端 DNS 设置

节点正常但网页打不开、网站跳转到错误地址、DNS 泄露检测显示国内运营商?本页说明 DNS 污染、DNS 泄露与解析失败三种症状的成因,解释客户端的 fake-ip 与 redir-host 模式,并给出七步排查流程与推荐的 DNS 设置。

更新于

快速结论

  • 三种症状对应三种问题:网站跳到错误地址或证书报错是DNS 污染;泄露检测看到国内运营商 DNS 是DNS 泄露;节点延迟正常但所有网页打不开是解析失败。
  • 最省事的解决方案:在 Clash 系客户端中使用 fake-ip 模式,并把境外 DNS 走代理查询;sing-box 用对应的 FakeIP 策略。
  • 解析失败先排除两件事:客户端的 DNS 设置是否被禁用、系统或浏览器是否开启了与客户端冲突的安全 DNS。
  • 改完 DNS 设置后记得清除系统与浏览器的 DNS 缓存,否则旧的错误结果会继续生效。

DNS 把域名翻译成 IP 地址,是每一次访问的第一步。它出问题时表现往往很迷惑:节点延迟测试一切正常,浏览器却打不开网页,或者打开的是一个错误的页面。很多用户在这种情况下反复换节点,其实问题根本不在节点上。

本页覆盖机场用户最常遇到的三类 DNS 问题——污染、泄露、解析失败——并解释客户端里 fake-ip 与 redir-host 两种模式的区别。如果你从没改过客户端的 DNS 设置,先看“逐步排查”的前三步就能解决大部分问题;进阶的 DNS 与分流配置见高级配置。

症状定义:三种 DNS 问题怎么区分

三种问题的表现各不相同,判断起来并不难。先看浏览器给出的错误信息,再做一次泄露测试,就能确定属于哪一类。

  • DNS 污染:访问某些网站时出现 ERR_CONNECTION_RESET、证书错误或跳到一个无关页面;在终端用 nslookup 查询该域名得到的 IP 与正常结果不符。污染发生在解析请求走了不可信的 DNS 服务器时。
  • DNS 泄露:网页访问正常,但在泄露检测网站看到的 DNS 服务器属于国内运营商。泄露本身不影响打开网页,但会暴露访问记录,并让依赖地区判断的服务(流媒体、AI 工具)得到混乱的结果。
  • 解析失败:浏览器提示 DNS_PROBE_FINISHED_NXDOMAIN 或“找不到服务器”,所有网站都打不开,但客户端里节点延迟正常。这是客户端或系统的 DNS 配置本身出了错,流量根本没有走到节点。

最可能的原因与判断方法

下表列出了三类症状背后的具体原因。注意有两项与客户端无关:浏览器的“安全 DNS”和路由器的 DNS 设置,它们会绕过客户端直接发起解析,很容易被忽略。

DNS 污染、泄露与解析失败的常见原因
原因判断方法处理
解析请求没有经过客户端,直接发给了国内 DNS泄露检测显示国内运营商;客户端 DNS 功能未启用启用客户端 DNS,使用 fake-ip 模式,或开启 TUN 模式接管全部 DNS 请求
客户端 DNS 配置中的上游服务器不可达所有网站解析失败,日志中出现 DNS 超时把境外 DNS(如 DoH 地址)设置为通过代理查询,并保留一个国内 DNS 作为国内域名的上游
浏览器开启了“安全 DNS”且与客户端冲突只有某个浏览器打不开,其他应用正常在浏览器设置中关闭“使用安全 DNS”,交给客户端处理
系统或路由器指定了固定 DNS换了客户端设置但结果不变;路由器后台填写了特定 DNS把系统与路由器的 DNS 恢复为自动获取,由客户端接管
fake-ip 模式下某些应用不兼容游戏、局域网设备或特定软件连不上,网页正常把这些域名加入 fake-ip-filter,或为该应用切换到 redir-host
DNS 缓存保留了错误结果修改设置后仍然打开错误页面,隔一段时间自行恢复清除系统与浏览器 DNS 缓存,重启客户端
所用规则集把域名判断为国内直连某个海外网站不走代理,解析也走了国内 DNS检查分流规则,把该域名加入代理规则

逐步排查:从验证解析结果开始

先简要说明两种客户端 DNS 模式。redir-host:客户端先把域名解析成真实 IP,再决定走代理还是直连,缺点是解析过程本身可能被污染。fake-ip:客户端对需要代理的域名返回一个内部假 IP(通常在 198.18.0.0/16 段),把域名原样交给节点在远端解析,从根本上避开本地污染,也是目前多数客户端的推荐模式。

  1. 1

    验证节点本身是否正常

    在客户端里对节点做延迟测试。节点超时属于节点连接失败,不在本页范围;节点正常而网页打不开,继续往下。

  2. 2

    用命令行验证解析结果

    在终端执行 nslookup 目标域名。返回超时说明解析失败;返回的 IP 明显异常(如指向国内地址或保留地址)说明被污染;fake-ip 模式下返回 198.18.x.x 属于正常现象。

  3. 3

    检查客户端 DNS 设置

    Clash Verge、Stash 等客户端在设置或配置中确认 DNS 已启用、模式为 fake-ip、上游包含至少一个通过代理查询的境外 DoH 地址;sing-box 在 dns 配置块中使用对应的 fakeip 策略。使用机场默认配置时通常已经设好,但有的机场会关闭 DNS 模块。

  4. 4

    清除系统与浏览器缓存

    Windows 执行 ipconfig /flushdns,macOS 执行 sudo dscacheutil -flushcache 并重启 mDNSResponder;浏览器在 chrome://net-internals/#dns 一类页面清除缓存。改了设置不清缓存,旧结果会继续生效。

  5. 5

    关闭浏览器的安全 DNS

    Chrome、Edge、Firefox 的“安全 DNS / DoH”会绕过客户端直接向指定服务器发请求。关闭它,让解析统一经过客户端。

  6. 6

    开启 TUN 模式

    系统代理模式只能接管支持代理的应用,TUN 模式会接管全部流量包括 DNS 请求。打开 TUN 后泄露问题通常立即消失;TUN 需要管理员或系统扩展权限,授权问题见客户端异常。

  7. 7

    检查路由器与系统 DNS

    把路由器 WAN 口与系统网卡的 DNS 都恢复为自动获取。路由器层面指定的 DNS 会影响全部设备,是“怎么改客户端都没用”的常见原因。

仍然无效时怎么办

七步之后仍然解析失败或持续泄露,剩下的可能性集中在两处:机场下发的配置里 DNS 部分写得有问题,或者你的网络环境对 DNS 流量做了劫持(部分运营商和校园网会把所有 53 端口的请求劫持到自己的服务器)。

  • 向机场客服反馈时附上客户端的 DNS 配置段、nslookup 的输出和泄露检测截图,请客服确认默认配置是否启用了 fake-ip 与代理查询。
  • 怀疑运营商劫持时,使用 DoH 或 DoT 作为上游并让它走代理,加密的 DNS 请求无法被 53 端口劫持。
  • 机场配置长期不更新、客服无法解释 DNS 设置的,说明运营维护能力不足,可以参考靠谱机场推荐选择替代品牌。

DNS 问题大多是配置问题,不是节点问题

反复换节点解决不了 DNS 问题。请先按本页流程确认客户端的 DNS 模式与上游,再决定是否联系机场客服。如果机场提供的默认配置连基本的 DNS 分流都没有处理好,也可以作为评估机场是否靠谱的一个信号,相关标准见避坑指南与机场推荐。

适合谁

  • 节点正常却打不开网页、怀疑客户端坏了的新手用户
  • 做过泄露检测发现 DNS 泄露、希望解决隐私与分流问题的普通用户
  • 需要理解 fake-ip 与 redir-host 差异并手动调整配置的进阶用户

怎么选择

  1. 按浏览器错误信息与泄露检测结果,先判断是污染、泄露还是解析失败。
  2. 用 nslookup 验证解析结果,确认问题在解析层而不是节点层。
  3. 优先使用 fake-ip 模式与走代理的境外 DoH 上游,再开启 TUN 接管全部 DNS。
  4. 每次修改后清除缓存,并检查浏览器安全 DNS 与路由器设置是否绕过了客户端。

相关文章

围绕「DNS问题」的深入文章与教程。

更多问题解决内容

常见问题

fake-ip 和 redir-host 应该选哪个?

日常使用选 fake-ip:它不在本地解析需要代理的域名,避开污染且速度更快。只有在某些游戏、局域网设备或特定应用无法兼容假 IP 时,把这些域名加入 fake-ip-filter,或整体切换到 redir-host。

DNS 泄露有什么实际影响?

一是访问记录会被本地 DNS 服务器看到;二是依赖地区判断的服务可能得到混乱的结果,例如流媒体与 AI 工具提示地区不匹配。开启客户端 DNS 并使用 TUN 模式通常可以解决,详见AI 服务连接问题。

为什么 nslookup 返回的是 198.18 开头的 IP?

这是 fake-ip 模式的正常现象。客户端对需要代理的域名返回内部假 IP,真实解析在节点远端完成。只要网页能正常打开,不需要处理。

用了机场默认配置还会 DNS 泄露吗?

有可能。部分机场的默认配置关闭了 DNS 模块或只用了国内 DNS,系统代理模式下浏览器也可能绕过客户端解析。做一次泄露检测,有问题就按本页流程启用 fake-ip 与 TUN。

改了 DNS 设置后反而所有网站都打不开了?

多半是上游 DNS 不可达:境外 DoH 地址没有设置为通过代理查询,客户端本身又需要先解析节点域名。保留一个国内 DNS 用于节点与国内域名解析,境外 DNS 走代理,然后清除缓存重启客户端。