VPN 是否安全,不能只看客户端有没有显示“已连接”。连接建立后,网页请求、DNS 解析、IPv6 查询、WebRTC 候选地址以及系统后台服务,可能分别采用不同的网络路径。即使出口地址已经改变,DNS 请求仍可能交给本地运营商;即使 DNS 没有泄漏,浏览器的 WebRTC 也可能暴露本地网络接口。安全检查的重点,是确认这些环节是否都符合你的预期。

本文将 DNS 泄漏、IPv6 泄漏和 WebRTC 暴露分开说明,并给出一套可以在 Windows、macOS、Android、iOS 和 Linux 上复现的检查流程。你不需要只依赖某个检测页面的绿色提示,而应在连接前、连接后、切换线路后分别观察结果,再根据客户端开关、系统 DNS、浏览器设置和 Kill Switch 的状态完成修复。

VPN安⁠全吗?DNS泄漏检测与修复方法

DNS 泄漏到底是什么

DNS 的作用是把域名转换成 IP 地址。当你打开一个网站时,设备通常先向 DNS 服务器询问目标域名对应的地址,然后再建立实际连接。启用 VPN 后,理想状态是 DNS 查询也沿着受保护的隧道发送,并由 VPN 服务端指定的 DNS 处理。DNS 泄漏则表示设备虽然改变了部分网络出口,但域名查询仍然通过本地网络、运营商 DNS、路由器或其他未预期的解析通道完成。

DNS 泄漏不一定意味着网页内容已经明文暴露,也不一定会让每个网站都出现异常。它更主要影响访问记录的可见范围、地区解析结果和隐私边界。例如,系统可能把国内域名交给本地 DNS,把国外域名交给 VPN DNS;也可能因为分流规则,只让浏览器流量进入隧道,却让系统服务继续使用默认网络。这样的配置未必是错误,但必须是你主动选择的结果,而不是客户端连接后无意形成的状态。

4

重点检查环节

3

常见泄漏类型

6

建议复核场景

1

每次只改一项

常见的泄漏来源包括客户端没有接管 DNS、系统手动设置了固定 DNS、IPv6 仍然绕过隧道、代理模式只覆盖浏览器、网络切换后旧解析仍被缓存,以及第三方安全软件重新接管了 DNS。某些客户端还会提供“自动选择 DNS”“按规则分流”或“允许局域网访问”等选项,这些选项改变的不是同一件事,排查时需要逐项记录。

DNS、IPv6 与 WebRTC 的区别

DNS 泄漏关注的是“域名由谁解析”。IPv6 泄漏关注的是“IPv6 流量是否有一条未经过隧道的路径”。WebRTC 暴露关注的是浏览器在建立实时通信连接时,是否把本地地址、局域网接口或其他候选地址提供给网页脚本。三者可能同时出现,也可能只有其中一种出现,因此检测页面显示的字段要看清楚。

检查对象 主要看什么 常见原因 修复方向
DNS 泄漏 检测结果中的 DNS 服务商和地区 客户端未接管 DNS、系统固定 DNS、分流设置 开启 VPN DNS 或受保护 DNS,清理旧配置
IPv6 泄漏 是否出现未预期的 IPv6 地址 服务或客户端没有覆盖 IPv6 启用 IPv6 隧道,或在明确了解影响后暂时关闭 IPv6
WebRTC 暴露 浏览器页面能否读取本地或公网候选地址 浏览器实时通信接口直接访问网络 调整浏览器 WebRTC 策略或使用合适的隐私扩展
代理范围 浏览器、终端和应用是否走同一线路 仅设置了浏览器代理,系统流量未覆盖 核对 VPN 模式、应用代理和规则分流

需要特别注意的是,检测页面显示的 DNS 服务商不一定必须与 VPN 品牌名称完全一致。部分服务会使用上游解析服务、区域 DNS 或自建解析集群,页面可能显示实际处理查询的基础设施名称。判断是否异常时,应结合客户端说明、连接地区和断开 VPN 后的基线结果。如果连接后仍稳定显示你本地宽带运营商的 DNS,而客户端没有说明这是预期行为,就值得继续排查。

判断重点

不要只问“有没有泄漏”,还要问“当前出现的 DNS、IPv6 和 WebRTC 地址是否都在我的配置预期内”。

检测前先建立基线

直接连接 VPN 后测试,往往很难判断哪些结果是变化,哪些结果本来就存在。更稳妥的做法是先断开 VPN,关闭其他代理工具,并在当前网络下记录一次基线。记录内容包括出口 IP、检测页面列出的 DNS 服务商、是否出现 IPv6 地址,以及浏览器 WebRTC 检测到的地址类型。记录不需要公开,也不要把完整地址和账户信息发布到公共平台。

建立基线时,尽量保持浏览器、网络连接和检测页面不变。先使用一个常规 DNS 泄漏检测页面观察结果,再使用 IPv6 检测和 WebRTC 检测分别复核。不要在同一轮测试里同时更改浏览器扩展、系统 DNS 和客户端模式,否则即使结果发生变化,也无法确定是哪一项设置起了作用。

检测工具本身也可能使用缓存、脚本权限或浏览器扩展,因此页面没有显示结果时,不要马上认为系统没有 DNS。可以先刷新页面、允许必要的脚本执行,并换一个可信的检测页面进行交叉验证。检测期间还应避免浏览器开启严格的脚本拦截模式,否则 WebRTC 项目可能只是被阻止读取,而不是已经完成网络层面的修复。

动手检测与结果记录

下面是一套适合桌面端和移动端的操作顺序。不同客户端的按钮名称可能不同,但判断逻辑基本一致。每次只改变一项设置,测试结束后写下结果,能够显著减少反复试错。

  1. 断开 VPN,关闭系统代理和其他代理客户端,记录出口 IP、DNS 结果、IPv6 状态与 WebRTC 地址。
  2. 打开 VPN 客户端,选择一个稳定线路,确认系统出现 VPN 连接提示,再等待网络恢复。
  3. 重新打开 DNS 检测页面,观察 DNS 服务商、地区和地址数量是否发生符合预期的变化。
  4. 单独打开 IPv6 检测页面,确认是否出现未被客户端说明覆盖的 IPv6 地址。
  5. 在浏览器 WebRTC 检测页面中查看本地地址、私有地址和公网候选地址,不要只看最终的“安全”或“存在风险”结论。
  6. 断开后重新连接另一条线路,再测试一次,排除单个节点配置异常。

如果 DNS 检测显示多个地区或多个服务商,不必立即认定所有结果都是泄漏。有些客户端会同时配置多个解析服务器,也可能因 IPv4 和 IPv6 使用不同 DNS 而出现多组结果。真正值得警惕的是:断开 VPN 和连接 VPN 后,DNS 结果几乎完全相同;或者检测明确显示本地运营商,而客户端声称已经启用隧道 DNS。

如果只有 IPv6 地址暴露,说明问题可能集中在 IPv6 路由,而不是所有流量都绕过了 VPN。可以先查看客户端是否提供“阻止 IPv6”“IPv6 防泄漏”或“通过隧道处理 IPv6”的选项。若没有相关选项,临时关闭系统 IPv6 可以作为排错手段,但这可能影响依赖 IPv6 的网络、局域网设备和部分应用,不建议在不了解影响的情况下长期修改。

从 VPN 客户端开始修复

客户端是最优先检查的位置,因为它通常同时管理虚拟网卡、路由、DNS 和断线保护。进入设置后,寻找 DNS 防泄漏、使用 VPN DNS、阻止 IPv6、全局模式、系统代理和 Kill Switch 等选项。不要只凭选项名称判断含义,部分客户端的“增强隐私”可能会改变局域网访问或分流行为,启用后要重新测试本地打印机、文件共享和办公系统是否仍能使用。

如果使用服务商官方客户端,优先采用客户端提供的自动 DNS 和防泄漏设置,避免在系统中手动填写一组固定地址后与客户端规则冲突。如果使用 Clash Verge、sing-box、Shadowrocket 等兼容客户端,则要确认订阅配置中的 DNS 模式、Fake-IP 或 Redir-Host 行为、IPv6 开关和路由规则彼此匹配。不同内核对 DNS 劫持、分流和系统代理的实现不同,不能把一个客户端的配置习惯原样复制到另一个客户端。

Kill Switch 的作用是:VPN 隧道意外断开时,阻止指定范围的流量继续通过普通网络发送。它不是 DNS 防泄漏的替代品,也不等于浏览器隐私设置。开启后,应测试主动断开、切换线路和网络从 Wi-Fi 切换到移动数据等场景,确认应用是暂时无网络,还是悄悄回落到本地连接。若你依赖局域网设备,注意选择“仅保护外网”或类似的适合当前环境的模式。

系统 DNS 与浏览器设置

客户端设置正确但检测仍异常时,再检查操作系统。Windows 可能保留网络适配器中的手动 DNS、虚拟网卡优先级或旧的代理设置;macOS 可能在 Wi-Fi 服务中保存自定义 DNS;Linux 则可能由 NetworkManager、systemd-resolved、桌面环境或本地代理共同管理解析。移动设备上,私人 DNS、始终开启的加密 DNS、工作配置文件和其他安全应用也可能接管查询。

排查时建议先恢复网络服务的自动 DNS,再重新连接 VPN。修改后需要清理 DNS 缓存或重启相关网络服务,随后关闭并重开浏览器。不同系统的缓存层不完全相同,浏览器内部还可能保留自己的连接池,因此仅仅刷新一个页面不一定能立刻反映新设置。若你所在的办公或校园网络要求指定 DNS,不要直接删除配置,应先确认 VPN 是否支持在隧道内继续使用该解析服务。

浏览器方面,WebRTC 是单独的检查项。某些浏览器会允许网页通过实时通信接口发现网络候选地址,即使普通页面流量经过代理,也可能看到本地接口信息。可以在浏览器隐私设置中限制 WebRTC 暴露,或使用可信的隐私扩展;但扩展本身也会影响视频会议、语音通话和浏览器内实时功能。修改后要用同一检测页面复测,并确认常用会议服务仍能正常建立连接。

现象 优先检查 不要先做什么
DNS 仍显示本地运营商 客户端 DNS 开关、系统手动 DNS、分流规则 不要立刻更换大量线路
只有 IPv6 地址异常 客户端 IPv6 防护与系统 IPv6 路由 不要把所有 DNS 设置反复重置
WebRTC 显示本地地址 浏览器 WebRTC 策略和扩展权限 不要仅凭网页出口 IP 下结论
断线后网页仍能访问 Kill Switch 范围、系统代理回落和应用分流 不要把客户端状态图标当作保护证明

修复后如何确认真的生效

修复不是看到一次结果变化就结束。首先重新连接当前线路,检查 DNS、IPv6 和 WebRTC;然后主动断开 VPN,观察 Kill Switch 是否按预期阻止受保护流量;接着切换 Wi-Fi、移动热点或其他网络,再重复检测。最后重启设备或客户端,确认设置不会因为启动顺序、网络变化或系统休眠而失效。

同时要验证应用范围。浏览器通过代理访问正常,不代表命令行、邮件客户端、游戏启动器或后台同步服务也使用相同路径。桌面端应分别测试浏览器与终端;移动端应检查目标应用是否被加入分流、排除列表或省电限制。对于需要长期保持连接的应用,Kill Switch 和后台运行权限尤其重要,否则系统暂停客户端后,网络可能回落到普通连接。

建议保存一份简短的个人检查记录:使用的客户端、连接模式、DNS 模式、IPv6 状态、WebRTC 结果,以及在不同网络下是否一致。不要保存订阅凭据,只记录设置名称和现象。以后升级客户端、导入新订阅或更换浏览器后,按这份记录重新复核,就能更快发现默认设置是否发生变化。

修复完成的标准

连接后 DNS 与 IPv6 没有出现未预期的本地路径,WebRTC 暴露符合浏览器设置,VPN 断开时受保护流量不会悄悄回落,并且常用应用的网络范围与自己的分流计划一致。

常见问题

检测到本地 IP 就一定是泄漏吗?

不一定。WebRTC 页面可能显示局域网私有地址,这与公网出口地址不是同一个概念;某些浏览器也会为了建立实时通信而展示接口候选。需要结合检测页面的字段、浏览器设置和你的隐私目标判断。若出现未预期的公网地址,或断开 VPN 与连接 VPN 后结果没有任何变化,就应进一步检查。

DNS 检测显示多个服务商正常吗?

可能正常,也可能需要排查。多组结果可能来自多个上游解析器、IPv4 与 IPv6 分开解析,或客户端的备用 DNS。重点是这些服务商是否属于你的预期路径,以及连接 VPN 后是否仍固定显示本地运营商。若无法确认,可以暂时关闭自定义 DNS、IPv6 和复杂分流,只保留客户端默认保护,再做一次基线对比。

只修改浏览器设置就够了吗?

只够解决浏览器层面的 WebRTC 暴露,不能自动修复系统 DNS、IPv6 路由或其他应用的网络路径。浏览器设置应与 VPN 客户端和操作系统配置一起验证。尤其是终端、后台同步和移动应用,它们可能完全不使用浏览器代理。

Kill Switch 开启后无法上网,是不是设置失败?

不一定。Kill Switch 的设计就是在隧道不可用时阻止受保护流量,避免流量回落到普通网络。先确认 VPN 是否已成功连接、客户端是否被系统省电策略暂停,以及 Kill Switch 是否设置为保护全部应用。如果本地网络和外网都被阻断,再根据客户端说明调整为适合当前场景的模式,并重新测试断线行为。

DNS 泄漏检测的价值,不在于追求某个页面上的单一“通过”标记,而在于建立可重复的验证流程:先做基线,再连接测试;分别检查 DNS、IPv6 和 WebRTC;每次只改一项设置;最后通过断线、换网和重启验证保护是否持续。这样即使更换客户端、线路或浏览器,也能快速判断问题出在解析、路由、浏览器接口还是应用分流。

免费使用