机 机场百度

DNS 配置与泄漏排查

进阶配置 更新于

解释 DNS 污染和 DNS 泄漏的区别、为什么会出现「IP 在日本但被判定成中国」,以及 fake-ip、DoH 等配置项各自解决什么问题。

很多「节点能连上但网站打不开」「IP 明明在日本却提示地区不支持」的问题,根源都在 DNS。

先分清两个概念

DNS 污染:你查询某个域名,返回了错误的 IP。表现为网站直接打不开或跳到无关页面。这是查询被干扰。

DNS 泄漏:你的流量走了代理,但域名解析是用本地运营商的 DNS 完成的。表现为:

  • 隐私上,你访问了哪些域名对本地网络可见;
  • 功能上,目标服务可能根据解析结果判定你在国内,于是出现「出口 IP 在日本,但内容还是国内版」。

两者经常同时出现,处理方式不同。

为什么会出现地区判定不一致

一次访问其实分两步:先解析域名拿到 IP,再连过去。

如果第一步用了本地 DNS,拿到的往往是国内 CDN 的 IP;第二步再通过代理连这个国内 IP,结果就是「绕了一圈还是国内内容」。

流媒体对这一点尤其敏感,这也是 Netflix 检测代理的常见触发条件之一,详见流媒体解锁原理。

三种解决思路

1. 让解析走代理

最彻底。Clash 系客户端里对应的是 remote-dns / 代理 DNS:需要走代理的域名,由代理服务器那一端去解析。

这样解析结果和出口在同一侧,地区判定自然一致。

2. 用加密 DNS(DoH / DoT)

把 DNS 查询本身加密,避免传输途中被篡改:

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://223.5.5.5/dns-query      # 国内域名,走国内加密 DNS
  fallback:
    - https://1.1.1.1/dns-query        # 国外域名,走国外加密 DNS
    - tls://8.8.8.8:853

要点是国内外分开:国内域名用国内 DNS 解析(拿到就近 CDN,速度快),国外域名用国外 DNS。

3. fake-ip 模式

客户端给需要代理的域名返回一个虚假 IP(通常在 198.18.0.0/16 段),流量到了代理那一层再用真实域名去连。

好处是完全跳过本地解析,快且不泄漏。副作用是少数直接校验 IP 的应用会异常,把它们加进 fake-ip-filter 即可:

dns:
  enhanced-mode: fake-ip
  fake-ip-filter:
    - '*.lan'
    - '*.local'
    - 'stun.*.*'

自查清单

  1. 开着代理,访问 DNS 泄漏检测站点,看解析服务器归属地。
  2. 如果显示本地运营商 → 检查客户端 DNS 设置是否启用、是否配了 fallback。
  3. 如果用了 TUN 模式,确认系统 DNS 没有被其他软件(杀毒、VPN 客户端)抢走。
  4. 改完之后清一次 DNS 缓存:Windows ipconfig /flushdns,macOS sudo dscacheutil -flushcache。

常见误区

  • 只换成 8.8.8.8 就完事:明文查询依然可能被篡改,要用加密形式。
  • 国内外用同一个 DNS:全用国外 DNS 会让国内网站解析到很远的 CDN,变慢;全用国内 DNS 则解决不了污染。
  • 改了不清缓存:系统和浏览器都会缓存旧的解析结果,不清理看不出效果。

下一步

数据来源与更新记录

内容整理
机场百度编辑部
最后更新

价格与解锁情况变动频繁,本页数据以上述更新时间为准,购买前请以服务商官网为准。 发现错误或过期信息可以反馈,我们会核实后更新。查看本站内容标准 →

常见问题

怎么判断自己有没有 DNS 泄漏?

开着代理访问任意一个 DNS 泄漏检测站点,看返回的解析服务器归属地。如果列出的是你本地运营商的 DNS,说明域名解析没走代理,存在泄漏。

fake-ip 会不会影响某些应用?

会。少数直接对 IP 做校验的应用(部分游戏、内网服务)在 fake-ip 下可能异常,把这些域名加进 fake-ip-filter 走真实解析即可。

改成公共 DNS 就能解决污染吗?

不完全能。明文 DNS 查询在传输途中仍可能被篡改,所以要配合 DoH / DoT 这类加密查询,或者让解析走代理完成。

教程中心相关内容