Clash DNS 泄漏检测与修复
流量走了代理,可如果"问哪个网站在哪"这一步(DNS 解析)还在用本地运营商的 DNS,你访问了哪些域名就被运营商看得一清二楚——这就是 DNS 泄漏。它不影响你能不能上网,但暴露了你的访问记录。这篇教你怎么测出来,再给一套堵漏配置。
DNS 泄漏到底漏了什么
上网分两步:先做 DNS 解析(把 google.com 翻译成 IP),再连那个 IP。代理通常接管了第二步,但第一步如果交给了本地运营商的 DNS,那么"你查过哪些域名"就被记录了。更糟的是国内 DNS 常被污染,给你返回错误 IP,导致明明开了代理却打不开网站。
对比示意图泄漏时运营商能看见你查的域名;防泄漏让解析走加密通道。
怎么检测
开着代理,打开 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 模式。
改完怎么验证
- 重载配置,重新跑一次 DNS leak test,确认运营商 DNS 消失。
- 顺手测一下 IPv6 没有从另一条路漏出真实地址。
- 访问几个之前打不开的网站,确认解析正常、没被污染。
别忽略 IPv6:DNS 堵好了,IPv6 直连仍可能暴露你。两者要一起处理才算干净,参考 IPv6 配置。
⚠️ 免责声明:本文为开源软件使用教程,本站不提供任何节点、VPN 或机场服务。请遵守所在地区法律法规,合理合法使用网络工具。