DNS 泄漏防护
更新于 2026年9月21日 · 我们如何研究
DNS 泄漏意味着你的流量是加密的,但域名解析不是。隧道在传输数据的同时,你的设备却悄悄去问 ISP 的解析服务器该连到哪个地址 — 等于交出了一份你访问过的所有网站的清单。
DNS 泄漏防护改变了什么
页面请求可能已经加密,但 DNS 查询仍可能暴露目标域名。
没有 DNS 泄漏防护时
设备DNS 查询走到隧道外ISP 的 DNS能看到域名信息暴露
解析服务器可以把查询过的域名与用户的网络连接关联起来。
仅凭 VPN 图标并不能证明 DNS 是私密的。
有 VPN 的 DNS 防护时
设备查询走受保护的路径经 VPN 的 DNS在路径内部预期结果
前提是应用和操作系统配置正确,这次查询不会用到 ISP 的解析服务器。
请用可重复的 IPv4、IPv6 和 WebRTC 测试来确认。
ZoogVPN 在文档中说明其应用具备 DNS 泄漏防护;VPN Sherlock 认为,在给出测试结论之前应先公开可观察的测试条件。
三种成因各不相同的泄漏
这是彼此独立的问题。通过了 DNS 测试,并不能说明另外两项的情况。
| 泄漏 | 成因 | 解决办法 |
|---|---|---|
| DNS 泄漏 | 操作系统把域名解析发给了隧道之外的解析服务器。Windows 特别容易出现这种情况,因为它可能同时向所有网卡发起查询,谁先回答就用谁的。 | 客户端必须指定隧道的解析服务器,并阻止发往其他解析服务器的查询。 |
| IPv6 泄漏 | 隧道只承载 IPv4,但操作系统优先使用 IPv6,于是把那部分流量发到了普通连接上。 | 客户端要么把 IPv6 也送进隧道,要么在连接期间把它关掉。 |
| WebRTC 泄漏 | 浏览器的一个 API 会为点对点连接找出本地和公网地址,并通过 ICE 候选项把它们交给网页。 | 在浏览器层面处理:禁用或限制 WebRTC,或者装一个扩展。只靠 VPN 解决不了这个问题。 |
WebRTC 是浏览器层面的问题
没有哪家 VPN 能靠自己完全堵住 WebRTC 泄漏,因为泄漏发生在流量到达网络栈之前的浏览器内部。任何声称能做到的服务商,都夸大了技术上可行的范围。请在你实际使用的那个浏览器里检查。
如何检查
- 连接之前先记下你的真实 IP 地址和 ISP。
- 连接到另一个国家的 VPN 服务器。
- 做一次 DNS 泄漏测试,确认显示出来的每一个解析服务器都属于 VPN,而不是你的 ISP。
- 做一次 IPv6 检查,确认要么没有显示 IPv6 地址,要么显示的是 VPN 的地址。
- 在每个浏览器里分别做一次 WebRTC 检查 — 不同浏览器的结果并不一样。
- 强制重连之后再测一遍,泄漏最常出现的正是这个时候。
ZoogVPN 是怎么说的
据 ZoogVPN 所述
ZoogVPN 称:「当你使用 ZoogVPN 应用时,我们会保护你免受 DNS 泄漏。我们的应用经过配置,使 ISP 无法收到 DNS 查询」,并称域名由其他 DNS 服务器解析。它的泄漏防护页面没有专门提到 IPv6 或 WebRTC 泄漏,我们也没有独立测试过这些行为中的任何一项。
由于那段说明并没有覆盖 IPv6 和 WebRTC,请按如何测试 VPN 里的步骤自己验证一遍。
常见问题
什么是 DNS 泄漏?
你的流量走隧道,但域名查询却走到了隧道之外的解析服务器,通常是你 ISP 的。结果是浏览的内容被保护了,而你访问过哪些网站却没有 —— 这让大半意义落空。它之所以常见,是因为决定查询去向的是操作系统,而 VPN 客户端必须去覆盖这个决定,而不是光存在就行。
VPN 能阻止 WebRTC 泄漏吗?
不能完全防住。WebRTC 是向浏览器索要候选地址的,所以暴露发生在浏览器内部,而不是 VPN 所控制的网络路径上。VPN 可以让公网地址不是真实的那个,但可靠的修复办法是浏览器设置或扩展。请在你用的每个浏览器里分别测试,因为各家表现并不一样。
为什么重连之后会出现泄漏?
重连期间虚拟网卡会短暂消失,操作系统会退回到默认的解析服务器。要紧的正是这个空档 —— 这也是为什么在 VPN 闲置时做测试说明不了什么。防住它的是防火墙层面的终止开关,因为它直接拦截隧道之外的流量,而不是等客户端重新建立隧道。
我自己设一个 DNS 不就行了吗?
可以,这对付 ISP 的解析服务器有帮助,但解决的不是同一个问题。手动设置的公共解析服务器依然看得到你的查询,而且除非客户端把它引进隧道,它仍然在隧道之外。目标是让查询走隧道,而不只是换个地方去问。
就算 DNS 没问题,IPv6 也会造成泄漏吗?
会,而且这正是人们最容易漏掉的一点。如果隧道只走 IPv4,而你的线路同时有 IPv6,操作系统可能优先用 IPv6,把那部分流量完全路由到隧道之外。请单独检查有没有 IPv6 地址:要么一个都不出现,要么出现的那个属于 VPN。