Clash DNS 泄漏检测与修复

流量走了代理,可如果"问哪个网站在哪"这一步(DNS 解析)还在用本地运营商的 DNS,你访问了哪些域名就被运营商看得一清二楚——这就是 DNS 泄漏。它不影响你能不能上网,但暴露了你的访问记录。这篇教你怎么测出来,再给一套堵漏配置。

DNS 泄漏到底漏了什么

上网分两步:先做 DNS 解析(把 google.com 翻译成 IP),再连那个 IP。代理通常接管了第二步,但第一步如果交给了本地运营商的 DNS,那么"你查过哪些域名"就被记录了。更糟的是国内 DNS 常被污染,给你返回错误 IP,导致明明开了代理却打不开网站。

泄漏 你的设备 运营商 DNS看见你查的域名 防泄漏 你的设备 加密 DNS经代理解析 核心思路:让域名解析也走加密 DNS、并经过代理,运营商既看不到也改不了。

对比示意图泄漏时运营商能看见你查的域名;防泄漏让解析走加密通道。

怎么检测

开着代理,打开 DNS 泄漏检测站(搜 "DNS leak test")跑一次标准测试,看返回的 DNS 服务器:

  • 如果出现你本地运营商的 DNS(如电信/联通的服务器)——泄漏了。
  • 如果只显示代理出口地区或你指定的加密 DNS——没问题。

一套防泄漏配置

核心是三点:用 fake-ip 让域名走代理决策、解析用加密 DNS、且解析请求本身经过代理服务器。下面这段可作起点:

dns:
  enable: true
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:               # 国内域名用的解析
    - https://223.5.5.5/dns-query
  proxy-server-nameserver:  # 解析"节点服务器域名"专用,防止这一步泄漏
    - https://223.5.5.5/dns-query
  nameserver-policy:
    "geosite:cn":
      - https://223.5.5.5/dns-query
  fallback:                 # 海外域名走这些加密 DNS(经代理)
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query

字段含义、fake-ip 与 redir-host 的区别,在 DNS 防污染配置详解里讲得更细,这里只聚焦"堵泄漏"。

最稳的兜底:开 TUN 并由它接管 DNS。系统所有 DNS 查询都被 TUN 劫持进 Clash 处理,应用就算硬编码了别的 DNS 也漏不出去。见 TUN 模式

改完怎么验证

  1. 重载配置,重新跑一次 DNS leak test,确认运营商 DNS 消失。
  2. 顺手测一下 IPv6 没有从另一条路漏出真实地址。
  3. 访问几个之前打不开的网站,确认解析正常、没被污染。
别忽略 IPv6:DNS 堵好了,IPv6 直连仍可能暴露你。两者要一起处理才算干净,参考 IPv6 配置

先把客户端装上

到下载中心装好支持 fake-ip 的 Mihomo 内核客户端,再套用本文配置。

前往 Clash 下载中心
⚠️ 免责声明:本文为开源软件使用教程,本站不提供任何节点、VPN 或机场服务。请遵守所在地区法律法规,合理合法使用网络工具。