DNS 泄漏是什么?怎么检测和修复
DNS 泄漏指流量走了节点、域名查询却直接发给了本地运营商 DNS,网站照样能开,所以很难察觉。本文给出三种两分钟内可完成的检测方法、五条常见泄漏路径对照表,以及 Clash Verge Rev、Mihomo Party、Shadowrocket 等客户端的逐步修复方法。

直接答案
DNS 泄漏是代理已连上、域名查询却仍发给本地运营商 DNS 的现象。检测方法:在客户端连接面板里看是否有大量去往运营商 DNS 的 53 端口直连,或用 nslookup 看系统解析结果是否为 198.18 开头的 fake-ip 地址。修复只有一个方向:让客户端接管全部 DNS,开启 fake-ip 模式、切换到 TUN 并劫持 53 端口、关闭浏览器安全 DNS 与系统私人 DNS。
DNS 泄漏指的是:代理已经连上,网页流量也确实走了节点,但域名查询这一步仍然直接发给了本地运营商 DNS。它不会让网站打不开,所以很多人用了一年机场都没发现。检测只需要两分钟:看客户端连接面板里有没有去往运营商 DNS 的 53 端口直连,或者用 nslookup 看系统解析结果是不是 fake-ip 地址。修复思路只有一个,让客户端接管全部 DNS 查询。本文和 DNS 基础教程 的分工是:那篇讲概念,这篇只讲泄漏从哪里漏、怎么证明、怎么堵。
泄漏会带来什么实际后果
很多人觉得「反正网站能开,漏了就漏了」。真正的麻烦有两个:
- 隐私层面:运营商 DNS 能看到你查询过的全部域名,等于访问记录被完整记录了一份。
- 一致性层面:流媒体与 AI 服务会比对「DNS 查询来源地区」与「访问 IP 地区」。查询在国内完成、访问从日本出口,两者不一致就可能被判定为异常,表现为地区不符、验证码循环或 ChatGPT 网络环境异常提示。
第二点才是机场用户更该在意的。不少「节点明明能开网页却用不了 AI」的案例,根源就是 DNS 泄漏,而不是节点本身。
五条常见泄漏路径
| 泄漏路径 | 典型表现 | 判断方法 | 处理 |
|---|---|---|---|
| 系统代理模式下应用自行解析 | 连接面板只见 TCP 连接,无 DNS 记录 | 用 nslookup 看结果是否为真实 IP | 切换到 TUN 模式 |
| 浏览器开启「安全 DNS」(DoH) | 浏览器查询绕过客户端直达 DoH 服务器 | 浏览器设置中查看安全 DNS 开关 | 关闭浏览器安全 DNS |
| Android 私人 DNS / iOS 描述文件 DNS | 系统级 DoT 直连 | 系统网络设置中查看 | 关闭或删除 |
| 客户端 redir-host 模式用国内 nameserver 明文解析 | 面板可见大量 udp 53 → 运营商 DNS | 查看 dns 段 enhanced-mode | 改为 fake-ip,nameserver 用 DoH |
| IPv6 DNS 漏网 | 面板中出现 IPv6 地址的 DNS 查询 | ipconfig /all 或 scutil --dns 查看 IPv6 DNS | 关闭 IPv6 或由客户端接管 |
三种检测方法
方法一:客户端连接面板
Clash Verge Rev、Mihomo Party 的「连接」页可以按端口筛选。输入 53,如果看到持续新增的 udp 连接,目标是 114.114.114.114、223.5.5.5 这类地址或运营商网关,规则列显示 DIRECT,就是泄漏。正常状态下,DNS 查询不应该以独立连接的形式出现在面板里,或者只出现去往 DoH 服务器的少量 HTTPS 连接。
方法二:命令行对比
# Windows PowerShell:先指定公共 DNS 解析,再用系统默认解析
Resolve-DnsName chatgpt.com -Server 223.5.5.5 | Select-Object Name, IPAddress
Resolve-DnsName chatgpt.com | Select-Object Name, IPAddress
# macOS / Linux
nslookup chatgpt.com 223.5.5.5
nslookup chatgpt.com
读法:第二条命令返回 198.18.x.x 这样的 fake-ip 段地址,说明系统查询已被客户端接管;返回真实公网 IP 且与第一条一致,说明系统查询没有经过客户端,存在泄漏风险。
方法三:在线泄漏检测
在节点开启状态下访问 DNS 泄漏检测类网站做「扩展测试」。结果列表里出现中国运营商名称即为泄漏,全部显示为节点所在地区或 DoH 服务商才算干净。这个方法最直观,但只能测浏览器这一条路径,终端与其他应用仍需用前两种方法确认。
ℹ️ 说明
fake-ip 模式下,在线检测可能显示 DoH 服务商(如 Cloudflare)所在地区而非节点地区,这是正常的,不算泄漏。只要没有国内运营商出现就行。
逐步修复
- 启用客户端内置 DNS,模式改为 fake-ip。 在配置覆写或 Merge 中写入下面的最小配置,保存后重新载入订阅。
- 从系统代理切换到 TUN 模式,并开启 DNS 劫持。 系统代理只能接管「主动读取代理设置的应用」,堵不住 DNS。TUN 配合
dns-hijack才能把所有 53 端口流量拉回客户端。 - 关闭浏览器安全 DNS。 Chrome / Edge 在「设置 → 隐私和安全 → 安全 → 使用安全 DNS」,Firefox 在「网络设置 → 启用基于 HTTPS 的 DNS」,全部关闭。
- 关闭系统级加密 DNS。 Android 在「网络 → 私人 DNS」选「关闭」;iOS 检查「设置 → 通用 → VPN 与设备管理」里有没有 DNS 描述文件。
- 处理 IPv6。 最省事的做法是在路由器或网卡上暂时关闭 IPv6;需要保留的,在客户端开启
ipv6: true让其一并接管。 - 重新用方法一和方法二检测,直到面板里不再出现去往运营商 DNS 的直连。
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
fallback:
- https://1.1.1.1/dns-query
tun:
enable: true
stack: mixed
auto-route: true
dns-hijack:
- any:53
完整的 DNS 段写法与每个字段的含义见 Clash / Mihomo DNS 设置详解,TUN 开启后没有网络的处理见 TUN 模式不生效怎么办。
各客户端的堵漏位置
| 客户端 | DNS 接管方式 | 操作位置 |
|---|---|---|
| Clash Verge Rev | TUN + DNS 覆写 | 设置 → 系统设置 → TUN 模式;设置 → DNS 覆写 |
| Mihomo Party | TUN + 内置 DNS | 设置 → TUN;设置 → DNS |
| Clash Meta for Android | VPN 模式自动接管 | 设置 → 覆写 → DNS,选择劫持模式 |
| Shadowrocket | 内置 DNS 覆写 | 设置 → DNS 覆写,填 DoH 地址 |
| Stash | 内置 DNS 与 fake-ip | 设置 → DNS 与 fake-ip 开关 |
| sing-box / Hiddify | dns 段 + tun 入站 | 配置文件 dns.servers 与 inbounds.tun |
⚠️ 注意
TUN 模式与其他 VPN 软件、部分安全软件的虚拟网卡会冲突,表现为开启后完全断网。先退出其他 VPN 再开 TUN,仍不行时把 stack 从 mixed 换成 gvisor 或 system 试一次。
预防:选订阅时就把 DNS 考虑进去
泄漏能不能从根上避免,一半取决于订阅配置是否规范。做 Clash 机场推荐或 Clash Meta 机场推荐时,我们会把「订阅自带 dns 段且默认 fake-ip」作为一项加分:导入即用,用户不必自己改。老牌 IEPL 线路的 宇宙云 与多入口容灾的 灯塔加速 在这方面比较规范;更多符合条件的品牌可以在 稳定机场 分类里对比。日常使用建议每次换客户端、升级大版本或更换路由器后,重新跑一次方法二,前后不到一分钟。其他 DNS 异常的处理方法集中在 DNS 异常栏目。
总结
- DNS 泄漏不影响能不能打开网站,影响的是隐私与出口地区一致性,流媒体和 AI 工具的地区误判常由它引起
- 最可靠的检测方法是看客户端连接面板:有去往运营商 DNS 的 53 端口 DIRECT 连接就是泄漏
- 系统代理模式天然堵不住泄漏,TUN 模式加 dns-hijack 加 fake-ip 才是完整方案
- 浏览器安全 DNS、Android 私人 DNS、IPv6 是三个最容易被忽略的漏点
常见问题
Q机场为什么有些节点不能用 AI 工具?
一部分是节点出口 IP 信誉问题,另一部分其实是 DNS 泄漏:解析在国内完成,服务端看到的解析来源与出口 IP 地区不一致,于是触发风控或地区限制。先按本文方法确认 DNS 已被客户端接管,再去判断节点本身是否有问题。
Q机场为什么有些节点不能看流媒体?
流媒体平台会比对 DNS 查询来源地区与访问 IP 地区,DNS 泄漏时两者不一致,就会提示地区不符或只显示本地内容。让流媒体域名通过节点解析,多数情况可以恢复;仍不行的才是出口 IP 被平台识别为数据中心的问题。
QClash 机场推荐怎么选?
从 DNS 角度看,优先选订阅配置里自带完整 dns 段、并且节点侧提供干净解析环境的机场,导入后基本不用自己改。老牌 IEPL 机场如宇宙云、灯塔加速的订阅在这方面比较规范,适合 Clash Verge Rev 与 Mihomo Party 直接使用。
Q机场订阅链接怎么导入 Clash?
在 Clash Verge Rev 的「订阅」页粘贴链接并点导入即可,导入后到「设置」里确认 DNS 覆写与 TUN 模式已开启,否则订阅自带的 dns 段可能没有生效,泄漏依旧存在。
Q机场显示超时怎么办?
先把客户端切到直连模式确认本地网络正常,再换一个节点测延迟。如果是开启 TUN 后才出现全部超时,多半是 nameserver 不可达导致 DNS 劫持后解析失败,把 nameserver 换成国内 DoH 地址再试。
参考资料与信息来源
- Mihomo 文档:DNS 配置 · enhanced-mode、dns-hijack 与 fake-ip-filter 的官方说明
- Clash Verge Rev 文档 · TUN 模式与 DNS 覆写的开关位置

