什么是 DNS 泄漏?连着 VPN 也可能暴露你访问了哪些网站
不翻车编辑部 · 更新于
DNS 泄漏一句话说完:你的网页流量走了 VPN,但“这个网站在哪”的查询没走,还是发给了你家宽带运营商。运营商看不到你在网站上做了什么,但能看到你访问了哪些域名、什么时间访问的。
自测只要 5 秒:连上 VPN,打开本站的 DNS 泄漏检测,点开始。结果里只要出现中国电信、联通、移动,或者 114、阿里、腾讯的 DNS,就是泄漏了。
DNS 是干什么的
你在浏览器里输入 youtube.com,电脑并不知道它在哪台服务器上,要先问 DNS 服务器:“youtube.com 的 IP 是多少?“拿到 IP 以后,才去连接。
家里的宽带默认用运营商的 DNS。连上 VPN 以后,理想情况是这个查询也走 VPN 隧道,交给 VPN 服务商或者海外的公共 DNS 去查。
泄漏了会怎样
隐私上,运营商的 DNS 日志里会留下你访问过的每一个域名。
使用上,问题可能更直接。国内 DNS 对很多海外域名会返回错误的 IP(也就是常说的 DNS 污染)。VPN 拿着这个错误的 IP 去连,自然连不上,表现就是“VPN 明明连着,某些网站就是打不开”,或者时好时坏。
另外,一些服务会参考你用的 DNS 来判断你在哪。出口 IP 在美国、DNS 却在上海,这种组合在风控系统眼里就很可疑。
为什么会泄漏
我们整理了 Windows 上最常见的几种原因:
- 客户端没有接管系统 DNS。 有些客户端只转发流量,不管 DNS,或者需要管理员权限才能改系统设置。
- Windows 的“智能多宿主名称解析”。 Windows 8 以后,系统会把 DNS 查询同时发给所有网卡,谁先回用谁的。VPN 的虚拟网卡和你的物理网卡同时收到请求,本地运营商 DNS 往往回得更快。
- 浏览器自己开了安全 DNS(DoH)。 Chrome 和 Edge 里如果“使用安全 DNS”选的是阿里或腾讯,浏览器会绕过系统直接问它们。
- IPv6 没有进隧道。 你家宽带有 IPv6,而 VPN 只处理 IPv4,那么走 IPv6 的 DNS 查询就直接出去了。
- 分流规则配置不当。 分流模式下国内域名用国内 DNS 是正常的,但如果海外域名也交给了国内 DNS,就是规则有问题。想确认分流到底怎么走的,可以用分流检测。
在 Windows 上怎么修
按顺序试,每改一步测一次:
- 在客户端里找 DNS 相关的开关,名字可能叫“防 DNS 泄漏”“远程 DNS”“DNS 劫持”“fake-ip”,打开它。部分客户端还有“TUN 模式”或“虚拟网卡模式”,这种模式对 DNS 的接管最完整。
- 右键客户端,选“以管理员身份运行”,再连一次。
- 检查浏览器:Chrome 打开
chrome://settings/security,Edge 打开edge://settings/privacy,找到“使用安全 DNS”,关掉或改成海外服务商。 - 关掉智能多宿主名称解析(Windows 专业版):按 Win+R 输入
gpedit.msc,依次打开“计算机配置 → 管理模板 → 网络 → DNS 客户端”,把“关闭智能多宿主名称解析”设成“已启用”。家庭版没有组策略编辑器,只能靠前面三步。
还不行,换协议或者换客户端。我们在评测里会给每款 VPN 的 Windows 客户端测 DNS 泄漏,结果写在隐私那一节。
DNS 泄漏和 WebRTC 泄漏是一回事吗
不是。DNS 泄漏暴露的是你访问了哪些域名,WebRTC 泄漏暴露的是你的真实 IP,发生在浏览器里,和 VPN 客户端设置关系不大。要测后者用 WebRTC 泄漏检测。
常见问题
检测结果里有 Google 或 Cloudflare 的 DNS,但位置在香港,算泄漏吗?
不算。这是公共 DNS 的海外节点,说明你的查询走了 VPN。
分流模式下测出国内 DNS 怎么办?
先看是不是只有国内 DNS。如果海外 DNS 和国内 DNS 都有,通常是客户端把国内域名交给国内 DNS、海外域名交给海外 DNS,这是正常设计。我们的测试域名在海外,如果它也被国内 DNS 解析了,那就是规则没配好。
用手机需要担心 DNS 泄漏吗?
iOS 和安卓对 VPN 的 DNS 接管比 Windows 规整得多,泄漏少见,但 IPv6 的问题一样存在。在手机浏览器里打开同一个检测页面就能测。
用了 DoH 是不是就不会泄漏?
要看 DoH 指向哪里。指向国内服务商,运营商虽然看不到内容,但国内服务商能看到;指向海外服务商且走 VPN,才算不泄漏。