换客户端或换订阅之后,我做的第一件事都是连上代理开检测站看一眼 DNS 一栏。这个习惯值得养成,因为 DNS 泄漏(也常写作 DNS 泄露)不影响你上网,网页照常打开,速度照常快,你根本感觉不到。它只是安静地把你访问过的域名清单交给了运营商。
DNS 泄漏指的是代理已经连上,但应用发出的域名解析请求没有进入代理隧道,直接以明文从本机发到了运营商的 DNS 服务器。结果是网页内容仍然加密,运营商却拿到了你访问过的完整域名清单,明文查询还可能被篡改(这就是 DNS 污染的来源)。它不影响上网速度和成功率,所以只能靠检测发现。
这篇讲的是怎么查、为什么漏、以及每一个常用客户端具体该改哪一项。
来源说明。设置项名称按各客户端官方文档与当前版本界面整理,核对日期 2026 年 9 月 14 日,以你当前版本为准。本站没有逐家测试机场默认订阅的 DNS 行为,所以本文不给「哪家机场不漏」的结论,只教你自己确认。配图为示意图。
DNS 泄漏检测,30 秒判断有没有漏
检测方法是先连上代理,用浏览器打开 dnsleaktest.com(点 Extended test)或 ipleak.net,看 DNS 一栏列出的解析器归属。列出的是中国电信、中国联通、中国移动,或你路由器的局域网地址,就是泄漏;列出的是节点所在机房或你自己配置的 DoH 服务商,就是正常。整个过程不到 30 秒,换客户端、换订阅、改过 DNS 设置后都应重测一次。
判断标准只有一条,看解析器属于谁。解析器的 IP 在国内也可能正常。
- 报出来的是电信、联通、移动,或者你路由器的地址 → 泄漏了,查询走的是本地明文通道
- 报出来的是机场节点那边的地址,或者你自己配的 DoH 服务商 → 正常
- 解析器在国内但不是你运营商的 → 通常也正常,有些机场的解析器就在国内,有些人给直连域名配了国内 DoH
顺手看一眼 IPv6 那一栏。显示了你的真实 IPv6 地址,说明 IPv6 绕过了隧道,后面单独说。
泄漏时到底发生了什么
浏览器拿到 youtube.com 这个域名时没法直接连,得先问「它对应哪个 IP」。正常情况下这一问和后面的网页流量一起进隧道,运营商只看到一条到境外 IP 的加密流。泄漏就是这一问没进隧道,从本机网卡直接发给了运营商的解析器。这时网页内容还是加密的,但「你几点几分查了 youtube.com」这份清单是明文的。
为什么会漏?三种典型情况
一、系统代理模式下,非浏览器应用自己解析了。 系统代理只对遵守它的应用生效。浏览器发请求时把域名交给代理,本机不解析;但很多桌面软件、命令行工具、游戏客户端根本不看系统代理,自己解析、自己连,这些查询全走运营商。这是 Windows 和 macOS 上最常见的一类泄漏来源。
二、订阅里没有 dns 段,或者 dns.enable 是 false。 Clash / Mihomo 内核的 DNS 是可以整个关掉的。关掉之后内核不管 DNS,全交给系统解析器。有些机场的订阅为了「兼容性」就不写 dns 段,这时候完全靠客户端自己的覆写。
三、开了 TUN 但没有劫持 53 端口。 TUN 模式接管了网卡,但如果没有配 dns-hijack(它让 TUN 把发往任意地址 53 端口的查询全部拦下、交给内核 DNS 处理),应用直接发给某个 DNS 地址的查询还是可能原样出去。多数客户端的 TUN 设置里有这一项,默认开着,但值得确认。
fake-ip 是什么,为什么它能堵住 DNS 泄漏
fake-ip 是 Clash / Mihomo 内核的一种 DNS 增强模式(配置项 enhanced-mode: fake-ip)。应用查询域名时,客户端不做真实解析,直接从 198.18.0.0/16 这个保留网段返回一个假 IP,并记住假 IP 与域名的对应关系;应用连这个假 IP 时,客户端把原始域名交给代理节点,在节点那一侧解析并连接。这样真正的 DNS 查询从未离开你的设备,也就无从泄漏。
举个例子,应用问「youtube.com 是哪个 IP」,客户端不去查,立刻回 198.18.0.7。应用拿着这个假地址发起连接,客户端认出它对应 youtube.com,把域名原样交给节点。
换成 redir-host 模式,客户端会先真的查一次 DNS 再决定走向,这一查如果走了系统解析器就可能泄漏。所以默认用 fake-ip;需要拿到真实 IP 的程序(部分游戏、局域网服务)可以写进 fake-ip-filter 排除,不必整体切回 redir-host。
DNS 泄漏怎么解决?逐个客户端的设置
DNS 泄漏的解决办法归结为四件事。一、桌面端用 TUN 模式代替系统代理模式,让不遵守系统代理的应用也进隧道;二、让客户端接管 DNS 并使用 fake-ip 模式(Clash / Mihomo 系配置项 enhanced-mode: fake-ip),域名查询就不会离开设备;三、把明文 DNS 换成 DoH(如 https://dns.alidns.com/dns-query),至少让查询加密、不可篡改;四、节点不支持 IPv6 时关闭 IPv6。改完回检测站复查。
| 客户端 | 平台 | 要改的设置项 | 目标值 |
|---|---|---|---|
| Clash Verge Rev | Windows / macOS | 系统设置里的 TUN 模式;Clash 设置里的 DNS 覆写;TUN 设置里的 DNS 劫持 | 开;开,enhanced-mode: fake-ip,nameserver 用 DoH;any:53 |
| ClashBox | 鸿蒙 | 复写页里的 DNS 项 | 启用,fake-ip |
| ClashMi | iOS / Windows | 设置里的 DNS 项 | 启用,fake-ip |
| Shadowrocket | iOS | 设置 → DNS 覆写 | 一个 DoH 地址 |
| sing-box | 全平台 | dns.servers 的 detour;fakeip |
指向代理出站;启用 |
| v2rayN | Windows | 底部 TUN 模式;DNS 设置 → 远程 DNS;路由设置 → 域名策略 | 开;DoH 地址;AsIs |
| Clash Meta for Android / FlClash | Android | 配置里的 dns 段 | enable: true,enhanced-mode: fake-ip |
下面的设置项名称以你当前版本为准,界面改名了就找含义相同的入口。改完一定回检测站复查,这是最直接可靠的确认方式,怎么复查见文末。
Clash Verge Rev(Windows / macOS)开 TUN、DNS 覆写和 fake-ip
桌面端用得很多的客户端之一,也是最容易在系统代理模式下漏的。
- 设置页的系统设置卡片 → 打开 TUN 模式。系统代理模式只管浏览器,TUN 才管全部应用。
- 设置页的 Clash 设置卡片 → 打开 DNS 覆写。它会用客户端内置的一套 dns 配置替换订阅里的,不管订阅写没写 dns 段。
- 点进覆写的编辑页确认三项,分别是
enable: true、enhanced-mode: fake-ip,以及nameserver填的是 DoH 地址(形如https://…/dns-query),看到114.114.114.114这种明文地址就换掉。 - TUN 设置里确认 DNS 劫持(
dns-hijack: any:53)是开着的。
安装和导入订阅的步骤在 Clash Verge Rev 教程。
ClashBox(鸿蒙)与 ClashMi(iOS / Windows)
同一个内核家族,思路和上面一样,确认 DNS 已启用、模式是 fake-ip。ClashBox 的相关项在「复写」页,ClashMi 在设置里的 DNS 项。这两款本文未逐项核对当前版本的界面,以你看到的「覆写 / 复写」页为准。iOS 上客户端走系统 VPN 隧道,所有应用的查询天然会被收进来,泄漏概率比桌面低,但订阅把 dns 关掉的情况一样存在,所以还是要查。
鸿蒙上的 ClashBox 安装见华为手机 ClashBox 教程,ClashMi 见 ClashMi iOS 教程和 ClashMi Windows 教程。
Android(Clash Meta for Android、FlClash)
这类客户端通过系统 VpnService 接管全部应用流量,泄漏风险主要来自订阅关掉了 dns 段。检查方法与桌面端相同,确认配置里 dns.enable: true、enhanced-mode: fake-ip,改完回检测站复查。安装和导入订阅的步骤见 FlClash 教程 和 Clash Meta for Android 教程。
Shadowrocket(小火箭)在 DNS 覆写里填 DoH
设置 → DNS 覆写 → 填一个 DoH 地址,例如 https://dns.alidns.com/dns-query(国内可直连)。如果想填 Google 或 Cloudflare 的 DoH,要先确认 DoH 请求本身能经代理发出,否则解析会直接失败。小火箭的分流规则里域名类规则不需要本地先解析,配合 DoH 基本能把明文查询堵掉。
它的规则模式和节点配置见 Shadowrocket 教程。复查时如果开着 iCloud 专用代理(Private Relay),Safari 里的检测结果会显示 Apple、Cloudflare 或 Akamai 的解析器,那是 Private Relay 的效果,不是泄漏;测试期间可以临时关掉它以免干扰。
sing-box(iOS / Android / 桌面)
sing-box 的 DNS 全在配置文件的 dns 段。机场给的 sing-box 订阅一般已经配好了,自己拼的配置要确认两件事。
- 代理用的 DNS 服务器带
detour指向代理出站,不带的话查询就直连出去了 - 如果用 fakeip,
dns.fakeip.enabled: true且有对应的dns.rules把代理域名指到 fakeip 服务器
以上按 1.11 及以前的配置格式写;1.12 起 DNS 服务器改为按 type 声明、fakeip 变成一种服务器类型,字段名有变化,以官方文档 DNS 一节为准。配置结构和导入见 sing-box iOS 教程。
v2rayN(Windows)先开 TUN,域名策略选 AsIs
v2rayN 的漏点在「域名策略」,前提是先开 TUN。
- 主界面底部打开 TUN 模式;系统代理模式下非浏览器应用同样会绕过 v2rayN 自行解析。
- 设置 → DNS 设置 → 远程 DNS 填 DoH 地址
- 设置 → 路由设置 → 域名策略选 AsIs。它的意思是域名原样交给节点、由节点解析;选 IPIfNonMatch 或 IPOnDemand 时 v2rayN 会先在本地解析再匹配规则,那一次解析就可能漏。代价是不在域名规则里的国内站点也会走代理,可用 geosite 规则补齐。
安装与订阅见 v2rayN 教程。
改成 8.8.8.8 为什么没用
网上最常见的建议是把系统 DNS 改成 8.8.8.8 或 1.1.1.1。这在国内环境解决不了问题,因为查询仍然是明文 UDP 53 端口从本机发出去,一样经过运营商,一样看得见、改得了,而且这两个地址直连本身就经常超时。
有两个概念别搞混。
- DoH(DNS over HTTPS,走 443 端口)/ DoT(DNS over TLS,走 853 端口) 解决的是「查询被看见和篡改」,把 DNS 变成加密请求
- fake-ip 解决的是「查询根本不出隧道」
桌面端优先 fake-ip + TUN,iOS 上至少把 DNS 换成 DoH。两个一起上最稳。
怎么看你的订阅有没有接管 DNS
Clash Verge Rev 里右键订阅 → 编辑文件,搜 dns:。看三行就够了。
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://dns.alidns.com/dns-query
没有 dns: 段,或者 enable: false,就说明订阅不管 DNS,全靠你在客户端里开覆写。nameserver 里全是 223.5.5.5 这种明文地址的话,域名查询本身在隧道里没问题,但直连域名的解析是明文的,介意的话用覆写换成 DoH。
sing-box 和 v2rayN 的订阅同理,分别看 dns 段和 DNS 设置。
还有一个「明明开了 fake-ip 还漏」的常见原因出在规则上。订阅里的 IP-CIDR 类规则如果没带 no-resolve,内核匹配这条规则时要先把域名解析成真实 IP 才能比对,这一次解析就可能出去。检查方法是在配置里搜 IP-CIDR,没有 ,no-resolve 后缀的让服务商补上,或在覆写里自己加。
IPv6 顺带处理
节点不支持 IPv6、但你的宽带和系统开着 IPv6 时,部分应用会优先走 IPv6 直连,绕过隧道。检测站 IPv6 一栏显示了真实地址就是这种情况。处理办法是在客户端设置里关掉 IPv6(Clash 系是 ipv6: false),或者在系统网络设置里禁用 IPv6,然后复查。
修好了怎么确认
复查标准就两条。一是检测站的 DNS 一栏变成节点那一侧的地址或你配的 DoH 服务商,二是 IPv6 一栏没有你的真实地址。另外有三个容易误判的地方。
- 浏览器自带的「安全 DNS」(Chrome、Edge、Firefox 都有)会让检测站显示 Google 或 Cloudflare 的解析器,既可能掩盖真实泄漏,也可能被当成泄漏。复查时先在浏览器设置里关掉它,或者换系统自带浏览器测。
- ipleak.net 的 WebRTC 一栏显示的是 IP 泄漏,不是 DNS 泄漏,两回事,别混着看。
- 检测站有缓存。改完设置换一个节点再测一次,两次结果一致才算数。
本站的边界
哪家机场的默认订阅接管了 DNS、接管得干不干净,需要逐家实测才能说,本站目前没有这项数据,所以不排名、不推荐。挑机场的一般方法在如何判断机场是否可靠;如果你测出某家订阅默认就漏,欢迎告诉我,攒够样本我会做一轮专项测试。
常见问题
怎么检测 DNS 泄漏?
DNS 泄漏检测显示解析器在国内,就一定是泄漏吗?
fake-ip 是什么?开了有副作用吗?
把 DNS 改成 8.8.8.8 或 1.1.1.1 能解决泄漏吗?
系统代理模式和 TUN 模式哪个更容易泄漏?
机场给的订阅里没有 dns 段怎么办?
浏览器开了「安全 DNS」还需要改客户端吗?
IPv6 也会泄漏吗?
发现信息过期或错误?欢迎联系纠错,我会尽快复核更新。
继续阅读
晚高峰速度慢的常见原因与排查步骤
白天流畅晚上卡顿?从国际出口拥堵、机场超售、线路类型到本地网络,逐层分析晚高峰变慢的原因,并给出可自己动手的排查步骤和改善方案。