代理已经连接成功,但 DNS 检测页面仍然显示本地运营商或本地解析器,这通常不是“节点没生效”这么简单。DNS 泄露怎么解决,关键要先确认:域名解析请求到底由谁处理、走哪条路径,以及是否和当前代理规则一致。
这篇文章保留“防止 DNS 泄漏”的通用排查思路,同时重点补充 Clash Verge 和 v2rayN 的 DNS 配置检查。不同客户端、内核和版本的实现并不完全一样,所以不能只靠“开启 TUN”或“关闭 IPv6”这一个动作下结论。
DNS 泄露是指域名解析请求没有按预期经过代理链路,而是由本地网络、系统解析器或其他未受代理控制的 DNS 路径直接处理。防止 DNS 泄漏的重点不是单纯换一个 DNS 地址,而是让“DNS 解析路径”和“代理路由路径”保持一致。
- DNS 泄露怎么判断、怎么解决
- Clash / Clash Verge DNS 泄露与 DNS 覆写
- v2rayN 开启 TUN 后仍出现 DNS 泄露的检查方法
- IPv6 是否必须关闭
- WebRTC 泄露与 DNS 泄露的区别
防止 DNS 泄漏 = 确认流量接管 + 检查 DNS 解析器 + 检查分流/劫持规则 + 最终复测。
目录
1. DNS 泄露怎么解决?先判断泄露发生在哪一层
DNS 泄露并不是单一故障。浏览器访问域名时,系统、代理客户端、代理内核和目标网络都可能参与 DNS 解析。即使网页流量已经走代理,只要 DNS 请求仍由本地网络直接处理,检测网站就可能看到与你当前代理出口不一致的解析器信息。
| 检查项 | 要确认什么 | 常见问题 |
|---|---|---|
| TUN / 系统代理 | 系统流量是否真正交给代理客户端处理 | 只代理了浏览器 HTTP/HTTPS,请求中的 DNS 仍由系统直连 |
| DNS 服务 | 当前客户端到底使用系统 DNS、客户端 DNS 还是远程 DNS | 配置文件和客户端 GUI 的 DNS 设置不一致 |
| DNS 劫持与规则 | 53 端口、DoH/DoT、Fake-IP 等解析请求是否按预期进入代理规则 | 开启 TUN,但 DNS 仍命中直连规则 |
| IPv6 | IPv6 是否也被当前代理和 DNS 配置正确处理 | IPv4 走代理,IPv6 仍直接连接 |
| 浏览器层 | 是否还存在 WebRTC 等独立的 IP 暴露问题 | DNS 已正常,但检测页面仍显示本地接口信息 |
因此,开启 TUN 是重要步骤,但不是“开启后 DNS 一定不会泄露”的充分条件。以 Clash Verge Rev 为例,TUN 配置里还有独立的 DNS 劫持选项;v2rayN 也会根据 Xray 或 sing-box 内核使用不同的 DNS 行为。
2. Clash / Clash Verge DNS 泄露怎么解决?
如果你搜索的是“Clash DNS 泄露”“Clash Verge DNS 泄露”或“Clash DNS 防泄漏配置”,先不要只检查一个 TUN 开关。更稳妥的顺序是:TUN → DNS 劫持 → DNS 覆写/配置文件 → 解析器 → 分流规则 → 复测。
2.1 先确认 TUN 与 DNS 劫持
Clash Verge Rev 的 TUN 设置中,DNS 劫持是单独的配置项。这说明“流量进入 TUN”和“DNS 请求如何被接管”本身就是两个需要分别确认的问题。开启 TUN 后,继续检查虚拟网卡设置中的 DNS 劫持是否按当前配置生效,并确认没有其他软件同时修改系统 DNS 或代理设置。
Clash Verge Rev 可按下面的顺序检查:
- 进入 设置 页面,先确认顶部的 TUN 模式已经正常开启;如果 TUN 无法启用,先处理服务模式或管理员权限问题。
- 在同一设置页找到 虚拟网卡模式,打开高级设置后检查 DNS 劫持。当前 Clash Verge Rev 的设置项会把 DNS 劫持作为 TUN 的独立参数处理。
- 如果你使用客户端 GUI 统一管理 DNS,再检查设置页中的 DNS 覆写;如果没有启用覆写,则应回到当前订阅/配置文件检查
dns:部分。 - 修改完设置后重启 Clash/Mihomo 内核,再清理系统 DNS 缓存并复测。不要一次同时修改多个 DNS、TUN 和路由选项,否则很难判断是哪一项解决了问题。
2.2 Clash Verge DNS 覆写要开吗?
不一定必须开。 Clash Verge Rev 官方仓库对这一点有明确区分:“DNS 覆写”决定 GUI 中的 DNS 设置是否以更高优先级覆盖配置文件;“启用 DNS”则决定是否开启 Mihomo 内核的 DNS 服务。这两个开关不是同一个概念。
如果你的订阅配置已经提供了正确的 DNS 设置,而且实际检测没有泄露,不需要为了“防泄露”强制打开 DNS 覆写。反过来,如果你希望统一由 Clash Verge Rev 的界面控制 DNS,再开启覆写,并继续检查其中的 启用 DNS、解析器、增强模式和规则设置。
官方说明可参考: Clash Verge Rev:DNS 覆写与启用 DNS 的区别
2.3 Clash DNS 防泄漏配置检查表
- 确认 TUN 已正常启动,且系统流量确实经过 Mihomo。
- 检查 TUN 设置中的 DNS 劫持是否与当前配置一致。
- 如果开启了 DNS 覆写,确认里面的“启用 DNS”与实际使用的解析器设置没有冲突。
- 检查当前配置中的
nameserver、Fake-IP/Redir-Host 等模式是否符合你的分流策略。 - 如果关闭 DNS 覆写,则回到订阅配置本身检查
dns:部分,而不是继续修改 GUI。 - 修改后重启 Clash 内核,再使用同一个 DNS 检测网站复测。
如果你还需要检查客户端的基础配置、TUN 或链式代理路径,可以继续看站内的 Clash Verge 链式代理配置教程;这里不重复展开客户端安装和节点配置。
3. v2rayN DNS 泄露怎么检查?
v2rayN 的 DNS 排查不能直接照搬 Clash。当前 v2rayN 会根据所选内核采用不同的 DNS 处理逻辑,尤其是 Xray 与 sing-box 在“直连 DNS”“远程 DNS”和节点域名解析上的行为并不完全相同。
3.1 先确认当前使用的内核
在 v2rayN 中,先确认当前配置实际使用的是 Xray 还是 sing-box。官方 Wiki 说明:Xray 内核中的“直连 DNS”和“远程 DNS”默认更多参与路由阶段的解析,而 sing-box 会直接使用这些设置处理直连目标、代理目标以及节点域名等解析。
v2rayN 可以先按这个路径检查:
- 打开 v2rayN,进入 设置 → DNS 设置。
- 先看 DNS 基础设置中的“直连 DNS”“远程 DNS”和“Bootstrap DNS”,不要一上来就改自定义 JSON。
- 如果“直连 DNS”或“远程 DNS”填写的是带域名的 DoH/DoT 地址,检查 Bootstrap DNS 是否填写了可用的 IP 地址形式 DNS;否则 DNS 服务自己的域名也可能先依赖系统解析。
- 如果你使用 sing-box + TUN,再检查 DNS 进阶设置中的 FakeIP 是否与你的路由策略一致。FakeIP 只对 sing-box 内核且 TUN 模式有效。
- 如果问题发生在 TUN 本身,再进入 设置 → 参数设置 → TUN 模式设置检查协议栈、路由等参数;DNS 泄露并不等于所有 TUN 参数都需要重置。
3.2 检查直连 DNS、远程 DNS 与 Bootstrap DNS
如果“远程 DNS”本身填写的是域名形式的 DoH/DoT 地址,还要检查 Bootstrap DNS 是否能正确解析这个 DNS 服务域名。否则就可能出现“看起来配置了远程 DNS,但启动阶段仍依赖系统解析”的情况。
3.3 FakeIP 不是所有模式都能用
v2rayN 官方文档目前明确指出:FakeIP 仅支持 sing-box 内核,并且只在 TUN 模式下生效。因此,如果你使用的是 Xray 内核,不要照搬 sing-box/FakeIP 的排查步骤。
v2rayN 官方 DNS 说明: v2rayN Wiki:DNS 设置说明
如果你的问题其实是节点、链式代理或最终出口没有按预期工作,可以继续参考站内的 v2rayN 链式代理配置教程排查链路本身;DNS 问题和“最终出口 IP 配错”不要混在一起判断。
4. IPv6 需要关闭吗?先确认代理是否接管 IPv6
防止 DNS 泄露不等于必须关闭 IPv6。 如果当前代理客户端、TUN 或 DNS 配置没有正确处理 IPv6,临时关闭 IPv6 可以作为快速排查手段;但如果客户端和代理链路已经正确支持 IPv6,则没有必要一律禁用。
旧版本教程常引用 RFC 3484 解释 IPv6/IPv4 的地址选择优先级,但该标准已经被 RFC 6724 取代。RFC 6724 也说明,在双栈环境中最终优先 IPv6 还是 IPv4,会取决于可用源地址和地址选择策略,并不是简单的“系统永远优先 IPv6”。
什么时候可以暂时关闭 IPv6:
- 开启代理后,IPv4 检测正常,但 IPv6 检测仍显示本地运营商出口。
- 当前代理节点或客户端明确不支持 IPv6。
- 需要快速判断泄露是否由 IPv6 直连造成。
什么时候不建议直接关闭:
- 客户端已经正确接管 IPv6,并且检测结果与代理出口一致。
- 业务或目标网站本身依赖 IPv6。
- 关闭 IPv6 会破坏当前局域网、企业网络或特殊解析环境。
4.1 Windows 如何临时关闭 IPv6 做排查?
如果检测结果已经明确显示 IPv4 走代理、IPv6 仍然是本地出口,可以先临时关闭 IPv6 做一次对照测试。这个动作的目的只是定位问题,不是要求长期关闭 IPv6。
- 在 Windows 中打开 网络连接,找到当前正在使用的 Wi-Fi 或以太网适配器。
- 右键当前网卡并进入 属性。
- 在组件列表中找到 Internet Protocol Version 6 (TCP/IPv6)。
- 临时取消前面的勾选并保存,然后重新连接网络、清理 DNS 缓存后再次检测。
- 如果关闭前后结果没有变化,说明问题大概率不在 IPv6,应恢复原设置并继续检查 DNS/TUN;如果泄露结果随之消失,再回头检查客户端是否正确接管 IPv6。
企业网络、校园网、特殊局域网或明确依赖 IPv6 的环境不建议直接改动;如果不确定原配置,先记录设置再测试。
5. WebRTC 泄露和 DNS 泄露有什么区别?
WebRTC 泄露不是 DNS 泄露。 DNS 泄露关注的是“域名解析请求走了哪里”;WebRTC 泄露则属于浏览器实时通信机制可能暴露本机或网络接口信息的问题。两者经常被同一个隐私检测页面同时展示,所以很容易被混为一谈。
根据 W3C WebRTC 标准,WebRTC 会涉及本地与远端网络候选信息。实际浏览器对本地地址的暴露策略会随浏览器版本变化,因此不要把“安装某个 WebRTC 插件”写成 DNS 防泄漏的必要条件。
如果 DNS 检测已经正常,但页面仍显示 WebRTC 相关本地网络信息,应把它当作独立问题继续排查浏览器权限、WebRTC 设置和扩展程序,而不是继续修改 DNS。
6. 最后一步:清缓存并验证是否修复
配置修改完成后,建议清理 Windows DNS 缓存并重启浏览器,避免旧缓存影响判断:
复测时不要只看“有没有国外 DNS”。更重要的是比较:
- 检测到的 DNS 服务商是否仍然是你的本地宽带/本地 ISP。
- DNS 位置是否与当前代理路由明显冲突。
- 关闭代理后与开启代理后的 DNS 结果是否发生了预期变化。
- IPv4、IPv6 和 WebRTC 是否还有独立的直连结果。
检测工具: DNS 泄露检测工具对比与判读教程
7. 常见问题解答(FAQ)
不一定。TUN 模式负责把更多系统流量交给代理内核处理,但 DNS 是否仍会走本地解析器,还取决于 DNS 劫持、客户端 DNS 服务、解析器和分流规则。开启 TUN 后仍应单独检查 DNS 配置并复测。
不一定。“DNS 覆写”决定 Clash Verge Rev 的 GUI 设置是否以更高优先级覆盖配置文件;“启用 DNS”则是是否开启 Mihomo 内核的 DNS 服务。订阅配置已经正确时,可以不强制打开覆写;如果需要由 Clash Verge Rev 统一管理 DNS,再开启覆写并检查内部配置。
先确认当前使用的内核,再检查直连 DNS、远程 DNS、Bootstrap DNS 和解析策略。Xray 与 sing-box 的 DNS 行为并不完全相同,FakeIP 也只在 sing-box 且 TUN 模式下生效,所以不能只凭“开启了 TUN”判断 DNS 一定不会直连。
不必须。如果当前代理或 TUN 配置没有正确接管 IPv6,临时关闭 IPv6 可以作为排查方法;如果客户端、代理链路和 DNS 配置都正确支持 IPv6,则没有必要一律关闭。
不是。DNS 泄露是域名解析请求没有按预期经过代理链路;WebRTC 泄露属于浏览器实时通信机制暴露本机或网络接口信息。两者可能在同一个检测页面被同时发现,但应分别排查。
不一定。更换 DNS 服务器只改变查询发给谁,并不自动改变查询走哪条网络路径。如果 DNS 请求仍从本地网络直连发送,更换成公共 DNS 仍然可能暴露解析路径。
先清理系统 DNS 缓存并重启浏览器,再确认没有同时运行多个会修改系统代理、TUN 或 DNS 的软件。之后重新检查 Clash Verge 或 v2rayN 的 DNS 与路由设置,并使用同一个检测网站复测。
如果已经确认 DNS、IPv6 和客户端配置正常,但仍需要测试不同代理出口或网络环境,可以前往 IPWeb 代理IP方案 进行进一步验证。
本文用于排查代理环境中的 DNS、IPv6 与浏览器层网络泄露问题。修改系统网络设置前,建议记录原配置,企业或特殊网络环境应优先遵循自身网络策略。