跳转至正文内容

防范 DNS 泄漏与设置 Fake-IP 最佳实践指南

解析代理环境下DNS泄漏与污染的根源,教学如何在Clash与sing-box中正确开启Fake-IP与加密DoH解析。

什么是 DNS 泄漏?为什么会发生?

当您在使用网络代理时,通常期望所有海外流量的请求都在加密隧道内完成。然而,如果客户端配置不当,系统在向目标服务器发起 TCP/UDP 握手之前,可能会通过电脑默认的网络接口向本地 ISP(中国电信/联通/移动)发送未加密的 DNS 查询。

DNS 泄漏数据流示意:
[本地电脑] ──(明文UDP 53查询 google.com)──> [本地运营商ISP DNS服务器] ⚠️ 发生泄漏与污染
[本地电脑] ──(加密代理流量)──> [海外节点]

这不仅会导致您的访问痕迹被运营商完整记录,还会因为本地 DNS 投毒污染直接返回错误的虚假 IP 地址,导致“节点正常但网页打不开”。

Fake-IP 模式:从原理上根治 DNS 污染

Fake-IP 的工作机制非常巧妙:

  1. 当本地应用程序向系统发起域名解析请求时,代理核心(如 Mihomo / Clash Meta)会立即拦截该请求,并直接返回一个保留网段的虚拟伪造 IP(例如 198.18.0.1)。
  2. 本地应用拿到这个伪造 IP 后,向其发起网络连接。
  3. 代理客户端在拿到包含该伪造 IP 的数据包后,根据内部路由映射表还原出真实的原始域名,然后将原始域名直接封装进加密隧道,交由远端海外代理服务器在国外机房进行真实的 DNS 查询。

推荐的 Clash Verge Rev(Mihomo 内核)DNS 配置示范

在 Clash Verge Rev 的「订阅 → 扩展覆写配置」中加入以下片段(大多数机场订阅已自带 DNS 配置,仅在出现泄漏或解析异常时再覆写):

dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - '*.lan'
    - '+.local'
    - '+.msftconnecttest.com'
    - '+.msftncsi.com'
    - '+.stun.*.*'
  # 用于解析 DoH 服务器域名本身,必须是纯 IP
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  # 用于解析节点服务器域名,走直连
  proxy-server-nameserver:
    - https://223.5.5.5/dns-query
    - https://doh.pub/dns-query
  # 国内域名用国内 DoH,保证国内网站解析到最近的服务器
  nameserver-policy:
    'geosite:cn,private':
      - https://223.5.5.5/dns-query
      - https://doh.pub/dns-query
  # 其余域名用境外 DoH,并按分流规则经代理发出
  nameserver:
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query
  respect-rules: true

要点说明:

  • respect-rules: true 让 DNS 查询本身也遵循分流规则——境外域名的查询会通过代理节点发出,不再经过本地运营商。
  • 开启 respect-rules 时必须同时配置 proxy-server-nameserver,否则节点域名本身可能无法解析。
  • 不要把 listen 设置为 0.0.0.0,除非你确实需要给局域网其他设备提供 DNS 服务,否则等于把 DNS 端口暴露给整个局域网。

验证效果

配置生效后,访问 dnsleaktest.com 进行 Extended Test:

  • 正常:结果中只出现 Cloudflare、Google 等境外 DNS 服务器,或你节点所在地区的 DNS。
  • 仍有泄漏:结果中出现国内运营商 DNS。检查是否开启了系统代理以外的 TUN 模式、浏览器是否开启了「安全 DNS」并指定了国内服务器,以及订阅是否覆盖了你的 DNS 设置。

另外建议在浏览器中关闭或统一配置「使用安全 DNS」(Chrome / Edge 设置 → 隐私和安全),避免浏览器绕过客户端自行解析。

常见问题解答 (FAQ)

如何检测我的电脑是否存在 DNS 泄漏?

连接代理后,访问专门的检测站点(如 dnsleaktest.com),进行 Standard Test 测试。如果结果中出现中国电信、联通、移动等国内运营商的 DNS 服务器,说明访问境外网站时的 DNS 查询发生了泄漏。

Fake-IP 模式对打外服联机游戏有影响吗?

大部分现代客户端(如 Mihomo 内核)已提供完整的 fake-ip-filter 过滤列表,将常见的联机平台与 STUN 语音服务器排除在 Fake-IP 之外,因此不会造成游戏 NAT 冲突。