DNS 泄漏怎么查?检测方法与客户端修复设置
DNS 泄漏是域名解析请求没有经过代理、直接发给本地运营商 DNS。自查看三样:检测页显示的解析服务器归属、命令行里系统实际用的 DNS、物理网卡上的 53 端口流量。修复靠 TUN 接管加 fake-ip 或正确的 DNS 设置。
你遇到的现象
用了海外节点,但部分网站仍按国内地区显示,或检测页面显示的 DNS 服务器在国内。
DNS 泄漏,指的是你访问某个网站时,查询域名的请求没有经过代理,而是直接发给了本地运营商的 DNS 服务器。节点是通的,网页也能打开,但“这个域名对应哪个地址”这一步,在本地完成了。这篇讲怎么做 DNS 泄漏检测、结果怎么读,以及在客户端里怎么修;术语的简短定义见DNS 泄漏。
DNS 泄漏是什么:节点通了,解析却在本地
访问一个网站要分两步:先问 DNS,把域名换成 IP 地址;再连接这个 IP。梯子管的是第二步。如果第一步没有交给代理,就会出现下面的情形:
- 你在浏览器里输入一个海外网站的域名。
- 系统把这个域名发给了本地设置的 DNS,通常是运营商或路由器的。
- 本地 DNS 回复一个地址。
- 浏览器通过节点去连接这个地址。
第 2 步,本地 DNS 就知道了你查过什么域名,这就是 DNS 泄漏(也有人写作 DNS 泄露,是同一件事)。注意它泄漏的是“你查了哪些域名”,而不是页面内容;使用 HTTPS 的网站,内容仍然是加密的。
用 fake-ip 方式工作的客户端不一样:它在本地先给域名分配一个临时地址,真正的解析交给节点那一端完成,本地就不必去问国内 DNS。这是后面修复方向里最核心的一项,原理见 Clash DNS 怎么设置。
泄漏了会怎样:隐私与地区判断
先说清楚,这件事没有看上去那么吓人,也不能完全忽略:
| 影响 | 具体表现 | 需要多当回事 |
|---|---|---|
| 隐私 | 本地运营商能看到你解析过的域名清单 | 取决于你在意什么,内容本身看不到 |
| 解析结果与出口不一致 | 国内 DNS 给出的是离你近的国内地址,而你的出口在海外,可能打开慢,或表现为按国内地区显示 | 影响体验,是常见的困惑来源 |
| 地区判断冲突 | 部分服务可能同时参考出口 IP 与解析来源,二者不一致时的处理不公开 | 无法一概而论,先修好自己这边 |
| 域名被干扰 | 本地 DNS 对部分域名可能返回不可用的结果 | 表现为明明节点正常却打不开 |
后面几行是“可能”,不是“一定”。不同网站对地区的判断方式不同,Netflix 一类服务的提示成因见 Netflix 提示正在使用代理怎么办。
看到国内 DNS 就是泄漏吗?先分清三种情况
很多读者在检测页面里看到国内运营商的名字,就以为中招了。其实有三种情形是正常的:
- 国内域名走国内 DNS。 规则模式下,国内网站设计成直连,解析自然也用国内 DNS。这是分流的预期行为,不算泄漏。
- 解析节点自己的域名。 客户端连接节点之前,要先知道节点的地址。如果节点用的是域名,这一步通常要在本地解析,客户端必须这样做。想减少这种暴露,可以用加密 DNS 单独解析节点域名,客户端是否支持以 Mihomo 文档 为准。
- 直连模式。 本来就没走代理,当然不存在“泄漏给谁”的问题。
真正需要处理的是:本该走代理的海外域名,解析却落在了本地 DNS 上,或者检测页面里出现了你完全不认识的解析服务器。
DNS 泄漏检测:三种自查方法
方法按门槛由低到高排列,可以只做前两种。
方法一:用检测页面。 搜索“DNS leak test”一类的在线检测页面,它们会让浏览器去解析一批随机域名,再告诉你是哪些解析服务器接收了请求。重点看列出的服务器属于谁、在哪个国家。需要保持开启梯子,规则模式和 TUN 都开着再测,用你日常的状态来测。
Cloudflare 提供的 1.1.1.1 帮助页面可以看到你当前的连接信息,包括是否连到了 1.1.1.1、是否启用了加密 DNS 等,具体项目以页面显示为准。它能帮你确认浏览器端的解析状况,但不等同于完整的泄漏检测。
方法二:看系统实际在用的 DNS。 命令行不依赖任何第三方站点:
nslookup example.com
scutil --dns
resolvectl status
第一条在 Windows、macOS、Linux 上通用,输出里会显示回应的 DNS 服务器;第二条用于 macOS;第三条用于使用 systemd-resolved 的 Linux。开着 TUN 和 fake-ip 时,nslookup 看到的地址有可能落在一段保留的地址范围,这是 fake-ip 在工作的迹象,不是错误。
方法三:在物理网卡上抓 53 端口的包。 这是最直接的证据。以 macOS 或 Linux 为例:
sudo tcpdump -n -i en0 port 53
网卡名称 en0 要换成你实际上网的那块网卡(Linux 上常见的名称不同,可用 ip addr 查看)。然后在浏览器里访问几个海外网站,看有没有这些域名的查询经由物理网卡发往本地 DNS。Windows 上可以用抓包软件做同样的事。要提醒的是,加密 DNS 走的是 443 端口,不会出现在这个过滤条件里,所以抓不到不等于没有解析,需要结合浏览器设置一起看。
读懂检测结果:什么算正常,什么要修
| 你看到的 | 通常意味着什么 | 要不要处理 |
|---|---|---|
| 解析服务器都是国内运营商,访问的却是海外网站 | 海外域名的解析在本地完成 | 需要处理 |
| 解析服务器是你设置的加密 DNS 服务 | 解析走了你指定的服务 | 看你的目的,多数情况下可以接受 |
| 解析服务器出现了你完全不认识的名字 | 可能是路由器、安全软件或客户端的设置 | 先弄清来源,再决定 |
| 同时出现多个不同归属的服务器 | 多网卡并行解析,或 IPv6 路径不同 | 需要处理,见下节 |
| 国内网站解析在本地,海外网站解析在海外 | 分流正常 | 不需要 |
最后一行是理想状态。测的时候要注意:检测页面的结果只代表那一刻、那个浏览器,换一个应用结果可能不同。
客户端怎么修:DNS 设置的五个方向
下面的方向,按改动由小到大排列。每次只改一项,改完用上一节的方法复查。具体配置项的写法可以到 Mihomo 文档 里核对,因为配置项会随版本变化。
- 开启 fake-ip 方式的 DNS。 让需要走代理的域名在本地不真正解析。对应配置里 DNS 段的增强模式,详细的区别见 Clash DNS 怎么设置。
- 用 TUN 接管 53 端口。 TUN 模式配合 DNS 劫持,可以把系统发往任意地址的域名请求截获,交给客户端自己的 DNS 处理,避免个别程序绕过系统设置。开启前后的取舍见 TUN 模式是什么。
- 分域名指定解析服务器。 为国内域名指定国内 DNS,为其他域名指定另外的解析方式,让每一类域名走各自该走的路。部分内核还支持让 DNS 请求本身遵循分流规则,具体选项以文档为准。
- 处理浏览器的安全 DNS。 浏览器的“使用安全 DNS”开启后,会自己加密解析,绕开客户端接管的 DNS,客户端只看到 IP,按域名匹配的规则可能因此失效(能否补救取决于客户端有没有嗅探功能)。想让客户端统一管理,就关闭这一项,或者让浏览器的解析请求也走代理。
- 检查 IPv6 与多网卡。 如果系统同时有 IPv6,而代理只处理 IPv4,解析请求可能从 IPv6 路径漏出去。Windows 在有多块网卡时,也可能向多个 DNS 并行发请求。可以先在客户端里关闭 IPv6 做对照,或者用 TUN 的 DNS 劫持兜住。
如果你只用系统代理、不想开 TUN,上面的第 1、3、4 项仍然适用,但无法接管那些不读系统代理的程序,对比见系统代理怎么设置。
修完之后,自己怎么复查
按这个清单走一遍,每一步都留一个结果:
- 保持日常的模式(规则模式、是否开 TUN),重新做一次 DNS 泄漏检测,对照上面的结果表。
- 访问几个海外网站,同时在物理网卡上抓 53 端口,确认海外域名的查询不再发往本地 DNS。
- 用
nslookup解析一个海外域名,确认返回的是预期范围内的地址。 - 在浏览器的设置里确认安全 DNS 是开着还是关着,是不是你预期的状态。
- 换另一个浏览器和一个桌面应用各测一次,因为不同程序走的路径可能不同。
- 关闭客户端后,再测一次,确认所有改动都只在客户端运行期间生效,没有留下异常的系统 DNS 设置。
第 6 步常被忽略:如果你在系统里手动改过 DNS,退出客户端后别忘了恢复。关掉梯子后上不了网的情况,见关掉梯子后上不了网。
隐私问题的整体视角,包括机场能看到什么,在梯子安全吗里有更完整的说明。
下一步:先查,再按方向逐项修
- 先用检测页面和命令行各查一次,判断是不是真的存在海外域名的本地解析。
- 确认存在,从 fake-ip 和 TUN 这两项开始,其他项按需要再动。
- 修完后用复查清单验证,并换几个程序再测一遍。
- 如果问题其实出在节点或线路,而不是解析,回到梯子连不上怎么办排查。
- 想换一家服务商时,可以到梯子推荐按用途筛选,并先用短周期套餐验证。
DNS 设置不需要一步到位,一次只改一项,每改一项都用自己的网络验证,比照抄一份来历不明的配置要可靠。
这篇没有覆盖的
- 本文不提供检测页面的结果或排名,也不评价任何具体的 DNS 服务。
- DNS 配置项的写法会随内核版本变化,请以 Mihomo 文档和你客户端的说明为准。
- 无法保证修复后完全没有泄漏,对隐私要求高的场景,请自行做更严格的抓包验证。
选梯子推荐榜目前排在前面的机场
下面是推荐榜的前几名。名次不是测速名次;价格与线路按资料原样列出,付款前到官网结账页面再核对一遍。
| 推荐名次 | 机场 | 推荐档 | 资料里的价格 | 线路 |
|---|---|---|---|---|
| 1 | 无忧链接 | 首推 | 合¥6/月 · 40GB/月(按年付费) | IPLC |
| 2 | 暮光加速 | 重点推荐 | 年付¥109(约¥9.1/月) · 70GB(按年付费) | IEPL |
| 3 | 微风网络 | 重点推荐 | ¥27/月 · 200GB(按月付费) | IEPL |
| 4 | 飞猫云 | 重点推荐 | 约¥7/月起(年付¥84) · 50GB(按年付费) | IPLC |
| 5 | Firefly | 重点推荐 | 约¥8/月起 · 60GB(按年付费) | IPLC |
| 6 | 灵动云 | 优先考虑 | 年付¥99(约¥8.3/月) · 70GB(按年付费) | IEPL |
| 7 | 隐形人 | 优先考虑 | 年付¥109(约¥9.08/月) · 80GB(按年付费) | 纯专线 |
| 8 | 梯子云 | 优先考虑 | 年付¥89(约¥7.4/月) · 60GB(按年付费) | IEPL |
本文引用的官方来源
- Cloudflare 1.1.1.1 帮助(检查连接信息)(one.one.one.one)
- Mihomo(Clash Meta)文档(wiki.metacubex.one)
以上链接均为官方页面,选梯子在 2026-10-08 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。
接着读
- 使用教程 · Clash DNS 怎么设置?fake-ip 与 redir-host
- 使用教程 · TUN 模式是什么?什么时候该开、怎么开
- 选购指南 · 梯子安全吗?机场能看到什么、看不到什么
- 故障排查 · Netflix 提示正在使用代理怎么办?原因与可行做法
- 术语 · Fake-IP是什么意思
- 使用教程 · 系统代理怎么设置?和 TUN 模式的区别与适用场景