TL;DR:会泄露,而且比你想象的常见。「DNS泄露」指的是你明明开了VPN或私人DNS,但某些DNS查询绕过了加密通道,又走回了明文的运营商DNS——等于你的上网记录还是被ISP看着。检测很简单:连上VPN后打开 dnsleaktest.com 跑一遍Extended Test,如果看到你本地运营商的DNS就说明漏了。防止方法:用支持「DNS劫持到VPN隧道」的VPN客户端、关闭IPv6、在系统层面强制指定加密DNS。
什么是DNS泄露?为什么开了VPN还会泄露?
先举个最常见的场景:你为了隐私开了VPN,流量全部加密走VPN服务器,以为自己万无一失了。但实际上——你的DNS查询可能根本没走VPN隧道。
这就是DNS泄露(DNS Leak):
- 你的网页浏览流量走了VPN,是加密的
- 但DNS查询那一步,系统还是用了本地网卡默认的DNS(也就是你运营商的DNS)
- 运营商虽然看不到你访问的内容,但它清清楚楚看到了你查了哪些域名
- 等于你花了钱开VPN,结果上网记录还是被ISP看光了
为什么会这样?因为很多VPN客户端默认只转发网页流量,不接管DNS查询。操作系统的DNS配置是按网卡走的,VPN网卡和本地WiFi网卡各有各的DNS设置,一不小心就漏了。
当然,就算你不用VPN、只用私人DNS,也可能有泄露——比如你的系统同时配了好几个DNS服务器,某些情况下会绕过你指定的私人DNS,走回明文。
怎么检测自己有没有DNS泄露?两个免费在线工具
检测DNS泄露非常简单,不用装任何软件,浏览器打开网页就能测。推荐用下面两个站交叉验证:
工具一:DNSLeakTest.com(最常用)
- 先连上你要用的VPN或私人DNS(如果你是在测VPN场景的话)
- 浏览器打开 https://www.dnsleaktest.com/
- 首页会自动显示你当前出口IP和ISP信息
- 点击「Extended test」(扩展测试)按钮,不要只点Standard Test
- 等十几秒,它会列出所有解析你查询的DNS服务器
怎么看结果:
- 如果你连的是VPN,列表里的DNS服务器应该都属于你的VPN服务商,IP归属地也应该在VPN服务器所在地
- 如果列表里出现了你本地运营商的DNS(比如中国移动、中国电信),那就是泄露了
工具二:ipleak.net(更全面)
- 同样先连上VPN/私人DNS
- 打开 https://ipleak.net/
- 页面会自动检测你的IP地址、DNS服务器、甚至WebRTC泄露
- 往下滚到「DNS Addresses」区域,看列出的DNS服务器列表
这个站的好处是它除了DNS泄露,还会顺便检测IPv6泄露和WebRTC泄露,一次测全。
测之前记得先做个基线:断开VPN、恢复默认DNS的时候先跑一次,记下你本地运营商的DNS名称和IP段。连上VPN之后再跑一次对比,如果两边DNS列表不一样、连上VPN之后没有出现你本地运营商,说明没泄露。
DNS泄露最常见的几个原因
原因一:VPN没接管DNS
这是最普遍的情况。很多VPN客户端默认配置下,只路由IP流量,不接管DNS查询。你的系统还是在用本地网卡的DNS设置发明文查询。
解决办法:在VPN客户端设置里找「Kill Switch」或「DNS Leak Protection」选项,打开它。好的VPN客户端都会提供这个功能,它会强制所有DNS查询都走VPN隧道。
原因二:IPv6泄露
很多人不知道:IPv4的流量走了VPN,但你的设备同时还有IPv6地址,IPv6的DNS查询可能完全绕过了VPN,直接走本地网络发出去了。
现在国内不少地方已经分配了IPv6地址,如果你的VPN不支持IPv6隧道,这一块就是个漏勺。
解决办法:要么在VPN里开启IPv6支持,要么干脆临时关闭系统的IPv6(测试隐私的时候最稳妥)。
原因三:系统配了多个DNS服务器
有些操作系统会自动给每个网卡都配上DNS服务器,如果你只改了WiFi网卡的私人DNS,手机流量网卡的DNS还是默认的,切换网络的时候就可能漏。
原因四:路由器层面的DNS
如果你家路由器自己配了DNS,所有内网设备的DNS查询可能被路由器「劫持」回路由器自己的DNS设置,你在手机上改私人DNS也可能不生效。这个问题在私人DNS不生效怎么办那篇里有详细排查方法。
怎么防止DNS泄露?四步走
第一步:用靠谱的VPN客户端,开启DNS保护
选VPN的时候,别只看价格和速度,一定要确认它支持「DNS Leak Protection」。主流的付费VPN(比如Mullvad、ProtonVPN、IVPN)默认都会开启这个功能,把所有DNS查询强制走隧道。
第二步:私人DNS + VPN 组合使用
如果你已经在手机上开了私人DNS(DoT),再配合VPN使用,其实是双重保险:
- VPN把你的整体流量加密走出去
- 私人DNS把域名查询再加密一层
- 两者叠加,就算VPN那边漏了,DNS这一层还是加密的
但要注意:有些VPN客户端会覆盖你系统的私人DNS设置,具体看组合效果。本站之前讲过私人DNS和VPN冲突怎么办,可以参考。
第三步:堵住IPv6泄露路径
如果你暂时不用IPv6,可以直接关掉系统的IPv6支持:
- Windows:网络适配器属性里取消勾选「Internet 协议版本 6 (TCP/IPv6)」
- Android:开发者选项里或者网络设置里关闭IPv6
- 路由器:关闭IPv6分发
这样就不会有IPv6 DNS绕出去了。
第四步:路由器层面统一配置
如果你家所有设备都想统一用加密DNS,可以直接在路由器层面配置。这样不管手机还是电脑,连上来就自动走你指定的DNS,不会出现「某个设备忘了设置」的情况。路由器设置私人DNS的方法本站也有专门教程。
验证:改完之后怎么确认不泄露了?
改完配置之后,别以为就万事大吉了,一定要再跑一次检测确认:
- 重新连好你的VPN/私人DNS配置
- 再开 dnsleaktest.com 跑一遍Extended Test
- 对照之前记下的「基线」——现在的DNS列表里还有没有你本地运营商?
- 如果干净了,说明配置生效了
- 顺便再去 ipleak.net 测一下IPv6泄露和WebRTC泄露
建议每次改完网络配置都测一遍,有时候系统更新或者APP更新会偷偷改回去。
常见问题
Q:我只用私人DNS不用VPN,也会有DNS泄露吗?
A:一般不会有传统意义上的「DNS泄露」(泄露是个VPN场景下的概念),但你的私人DNS可能不生效——比如某些APP自己硬编码了DNS服务器,绕过了系统设置。这种情况不算泄露,但效果上类似。
Q:DNS泄露了会怎么样?严重吗?
A:如果你只是普通上网,泄露的后果就是你的ISP知道你访问了哪些域名,但看不到具体内容。但如果你用VPN是为了隐私保护,那DNS泄露等于VPN白开了——你的完整浏览记录还是被ISP看着。所以用VPN的人一定要重视DNS泄露问题。
Q:免费VPN是不是都有DNS泄露?
A:大部分免费VPN确实不做DNS保护,泄露概率很高。而且很多免费VPN本身就在卖你的浏览数据。如果真的在意隐私,建议用付费的、明确承诺无日志+DNS泄露保护的VPN服务。
参考来源
- DNSLeakTest官方网站 — 支撑DNS泄露检测工具使用方法与Extended Test流程
- ipleak.net官方网站 — 支撑多维度IP/DNS/WebRTC泄露检测方法
- DNSLeakTest - 什么是DNS泄露 — 支撑DNS泄露的定义与风险说明
- ipleak.net - DNS泄露原因说明 — 支撑Windows多网卡DNS配置导致泄露的技术原因