tech/network · 集群 A · 网络基础原理 · 2/6

DNS 污染是什么:解析被篡改的原理、表现与缓解思路

发布时间 待核实核实日期 待核实最近更新 待核实测试状态 Not Tested
Answer First · 核心结论

DNS 污染是指域名解析过程中返回了不正确的 IP 地址,导致后续连接走向错误目标;DNS 泄漏则是本该由代理处理的解析请求走了本地 DNS。两者都会让代理“看起来坏了”。如果你遇到解析异常,可以优先确认客户端的 DNS 模式(远程解析或 Fake-IP)是否开启,再判断是否为节点问题。

DNS 解析是怎么工作的

DNS 的作用是把人能记住的域名翻译成机器能用的 IP 地址,它是几乎所有网络访问的第一步。当你在浏览器输入一个网址,系统会先查本地缓存,没有命中就问配置好的 DNS 服务器(通常是路由器或运营商提供的递归服务器),递归服务器再逐级去问根服务器、顶级域服务器和权威服务器,最后把答案返回给你。

[浏览器] → [系统缓存] → [递归 DNS 服务器]
                              │
            ┌─────────────────┼─────────────────┐
            ▼                 ▼                 ▼
        [根服务器]      [顶级域服务器]     [权威服务器]
                              │
                              ▼
                     返回 IP 地址给浏览器

传统 DNS 查询使用明文 UDP,默认端口 53,没有加密也没有完整性校验。这意味着查询和应答在传输路径上可以被观察,也可能被替换——这就是 DNS 问题的根源。

DNS 污染、劫持与泄漏的区别

DNS 相关的问题有三个常被混用的概念,它们的原理不同,但对用户的表现很接近。

概念 发生位置 原理 对代理的影响
DNS 污染 传输路径中 在真实应答返回前注入错误应答 解析到错误地址,连接失败
DNS 劫持 解析服务器 请求被导向非预期服务器,或服务器返回篡改结果 同上,或被导向广告页
DNS 泄漏 本地配置 应由代理处理的查询走了本地 DNS 分流判断错误、暴露访问意图

污染与劫持的结果都是“拿到了错误的 IP”,而泄漏的结果是“解析走了不该走的路”。在代理场景中,泄漏不一定导致连不上,但可能导致分流规则按错误的 IP 判断,或者让落地地区与解析地区不一致。

代理场景中 DNS 问题的典型表现

DNS 问题的特点是“看起来像节点坏了,但换节点也没用”。下面是一些常见表现:

  1. 所有节点访问同一网站都失败,但其他网站正常——可能是该域名的解析结果被污染。
  2. 解析出的 IP 明显不属于该网站所在地区,例如解析到保留地址或毫不相关的网段。
  3. 同一网站时而走代理时而直连——分流规则按 IP 匹配时,不同来源的解析结果会命中不同规则。
  4. 网站提示地区与节点不符——可能是 DNS 走了本地解析,CDN 按解析来源返回了就近节点。
  5. 首次访问很慢,第二次正常——解析等待时间较长,缓存后恢复。

第 4 种情况与 IP 归属相关,原理可参考 节点与 IP 专题。访问 AI 或流媒体平台时应遵守平台服务条款与支持地区。

代理内核如何处理 DNS

现代代理内核(如 Clash 系内核)通常内置 DNS 模块,主要有两种工作模式:常规解析(redir-host 类)和虚拟 IP(Fake-IP)。

常规解析模式:内核向配置的上游 DNS 服务器查询真实 IP,返回给应用,再按 IP 或域名匹配规则。优点是应用拿到的是真实地址,兼容性好;缺点是解析环节仍可能受污染影响,且需要等待查询完成。

Fake-IP 模式:内核收到查询后立即返回一个保留网段(常见为 198.18.0.0/15)中的虚拟 IP,并记住“这个虚拟 IP 对应哪个域名”。应用用虚拟 IP 发起连接时,内核再按域名匹配规则,如果走代理,就把域名交给远端节点去解析。

Fake-IP 流程:
[应用] 查询 example.com
   ▼
[内核] 立即返回 198.18.x.x(虚拟)并记录映射
   ▼
[应用] 连接 198.18.x.x
   ▼
[内核] 查映射得到 example.com → 匹配规则 → 走代理
   ▼
[远端节点] 在境外解析 example.com 并连接
对比项 常规解析 Fake-IP
应用拿到的地址 真实 IP 虚拟 IP
解析等待 需要等待上游 几乎无等待
受本地污染影响 较大 较小(走代理的域名由远端解析)
兼容性 较好 少数应用需加入例外
适合场景 对真实 IP 敏感的应用 大多数浏览与日常使用

不同客户端中这两个模式的菜单名称可能不同,且可能随版本变化,具体请以客户端界面为准。桌面客户端的具体设置可参考 桌面客户端 专题。

加密 DNS 的作用与局限

加密 DNS(如 DoH、DoT)把 DNS 查询放进加密通道,使查询内容在传输过程中不能被直接观察或替换,从原理上可以减少污染。但它并不是万能的:

  • 加密 DNS 服务器本身也需要可达,如果连接被干扰,查询同样会失败;
  • 加密 DNS 只解决“解析”这一步,后续连接是否可达仍取决于路由与传输层;
  • 与代理内核同时使用时,需要明确“谁负责解析”,避免系统和内核各解析一次导致结果不一致。

因此,在代理场景中更常见的做法是让代理内核统一接管解析,由内核决定哪些域名本地解析、哪些交给远端节点。

排查 DNS 问题的步骤

当怀疑是 DNS 问题时,可以按下面的顺序检查:

  1. 确认客户端 DNS 模块是否启用:查看配置中 DNS 相关段落是否开启,模式是 Fake-IP 还是常规解析。
  2. 对比解析结果:分别用系统 DNS 和代理内核解析同一域名,看结果是否一致、是否有明显异常。
  3. 查看日志中的规则命中:确认该域名是按域名规则命中还是按 IP 规则命中。
  4. 检查是否有 DNS 泄漏:系统代理模式下,部分应用会自行解析,此时可考虑 TUN 模式统一接管,原理见 TUN 虚拟网卡原理。
  5. 清除缓存后重试:系统、浏览器和内核都有 DNS 缓存,修改配置后需要清空才能生效。

如果解析正常但连接仍失败,就应该往下一层排查,例如传输协议是否匹配,参见 TCP 与 UDP 在代理场景中的差异,或按 分层排障法 系统定位。

小结与下一步

DNS 是代理故障中最常被误判的一层:它的问题看起来像节点问题,但换节点解决不了。理解污染、劫持与泄漏的区别,知道代理内核的两种解析模式,就能更快判断问题所在。

如果你在比较服务商时关注客户端与协议支持,可以在 机场品牌库 中查看各品牌资料,或通过 对比工具 并排查看。品牌资料中的数据本站未实测,请以你的实际测试为准。返回 网络原理与排障 专题页可查看更多原理文章。

常见问题

DNS 污染和 DNS 劫持有什么区别?

两者都会导致解析结果错误。一般说的劫持多指解析请求被导向了非预期的 DNS 服务器,污染多指传输过程中被注入了错误应答。对用户来说表现类似,排查思路也相近。

怎么判断是不是 DNS 出了问题?

可以对比不同 DNS 服务器对同一域名的解析结果,看是否返回了明显异常或彼此矛盾的地址;如果开启代理内核的远程解析后问题消失,也说明与解析环节有关。

Fake-IP 是什么,有什么副作用?

Fake-IP 是代理内核先返回一个保留网段内的虚拟 IP,等真正建立连接时再按域名处理。它能减少解析等待和污染影响,但少数依赖真实 IP 的应用可能出现兼容问题,需要加入例外列表。

换一个公共 DNS 就能解决污染吗?

不一定。如果查询本身在传输途中被干扰,单纯更换明文 DNS 服务器效果有限。代理场景下更常见的做法是让代理内核接管解析,或使用加密 DNS。

信息来源与更新时间

信息来源
品牌清单资料(品牌公开信息整理)
测试范围
本站未进行测速与解锁实测,所有能力描述均为资料声明或未测试状态。
发布时间
待核实
核实日期
待核实
最近更新
待核实

字段含义与数据状态见 字段说明;核查进度见 品牌动态与核查日志。