VPN 安全吗,不能只看客户端是否显示“已连接”。VPN 通常会改变部分网络流量的传输路径,但 DNS 查询、浏览器的 WebRTC 请求、系统代理例外规则,以及应用自身的网络实现,都可能让请求绕过预期的加密隧道。也就是说,连接成功不等于所有域名查询、所有应用流量和所有本地网络请求都已经受到同样保护。
DNS 泄漏的典型表现是:网页访问看起来正常,出口 IP 也已经改变,但 DNS 检测页面仍显示本地运营商或原网络环境的解析服务器。WebRTC 泄漏则可能在浏览器建立实时通信时暴露本地地址、局域网地址或其他候选连接信息。两类问题的成因不同,修复方法也不能简单归结为“换一条线路”。下面从原理、检测、修复到公共 Wi-Fi 自查,整理一套适用于 Windows、macOS、Android、iOS 和 Linux 的排查流程。
DNS 泄漏到底是什么
访问网站时,设备通常先把域名解析成 IP 地址,再向目标服务器发起连接。DNS 查询本身可能不包含网页正文,却会暴露“设备正在查询哪些域名”这一层信息。如果 VPN 只接管了网页连接,却没有接管系统的 DNS 请求,查询就可能继续发送到本地路由器、运营商 DNS 或公共网络自动分配的解析服务器。
常见原因包括客户端没有启用 DNS 接管、系统优先使用了物理网卡的 DNS、虚拟网卡路由优先级不正确,以及分流模式故意让 DNS 走本地网络。某些浏览器还支持自己的安全 DNS 或加密 DNS,它可能绕过系统设置,直接连接浏览器指定的解析服务。移动设备则可能受到私人 DNS、配置描述文件、网络切换和省电策略影响。
DNS 泄漏不一定意味着网页内容已经被读取,也不代表 VPN 加密完全失效,但它会让域名访问记录与本地网络产生关联。在公共 Wi-Fi、校园网、酒店网络等环境中,错误的 DNS 还可能导致域名被篡改、解析失败或跳转到不预期的页面。因此,DNS 是网络隐私检查中不可省略的一环。
4
重点检查层
5
支持平台
90+
国家覆盖
200+
线路数
上面的“重点检查层”指出口 IP、DNS、WebRTC 和应用实际流量;它们分别回答不同问题。出口 IP 检查的是对外地址,DNS 检查的是域名如何解析,WebRTC 检查的是浏览器实时通信候选地址,应用检查则确认某个程序是否真正使用了代理或虚拟网卡。
修复前先做一次完整检测
检测时不要只打开一个页面看结果。先断开 VPN,记录当前网络的出口 IP、DNS 服务商和浏览器 WebRTC 信息;再连接 VPN,等待状态稳定后重新检测。两次结果的差异比单次截图更有参考价值。检测期间尽量关闭其他代理客户端,避免 Clash Verge、sing-box、Shadowrocket、系统代理和浏览器扩展同时接管流量,造成结果互相干扰。
检查出口 IP 与 DNS
出口 IP 检查用于确认网页连接是否从预期线路出去。DNS 检查则要观察解析服务器所属地区、运营商或组织,而不只是看网页是否能打开。如果连接后出口 IP 已改变,但 DNS 服务器仍明显属于本地宽带或当前 Wi-Fi 网络,就应继续检查 DNS 接管状态。
在 Windows 可以使用命令行查看当前解析器:
ipconfig /all
nslookup example.com
macOS 和 Linux 可以从系统网络设置、NetworkManager 或终端工具查看当前 DNS。不同系统的显示方式并不完全一致,因此不要仅凭某一行地址判断泄漏。重点是比较 VPN 连接前后的解析服务器、默认路由和实际查询结果。若客户端使用本地 DNS 转发器,系统中看到的可能是 127.0.0.1 或局域网地址,此时还需要回到客户端确认它把查询转发到哪里。
检查浏览器 WebRTC
WebRTC 用于视频会议、语音通话和点对点连接。浏览器可能通过 ICE 机制收集多个候选地址,其中包括本地网卡地址、局域网地址和经代理或 VPN 暴露的地址。即使网页普通请求已经经过 VPN,WebRTC 仍可能采用另一套连接逻辑。
检查时应使用可信的 WebRTC 检测页面,并分别记录连接前后的候选地址。看到内网地址不一定就是严重问题,因为 192.168.x.x、10.x.x.x 等地址通常只在本地网络中使用;但如果检测结果出现与当前 VPN 出口不一致的公网地址,或者浏览器在断开和连接状态下暴露相同的真实公网地址,就需要处理浏览器权限、扩展和 WebRTC 策略。
| 检查项目 | 正常时应关注什么 | 异常信号 | 下一步 |
|---|---|---|---|
| 出口 IP | 与所选线路和预期地区一致 | 仍显示原网络公网地址 | 检查接管模式与路由 |
| DNS | 由客户端或预期解析服务处理 | 显示本地运营商或 Wi-Fi DNS | 启用 DNS 接管并刷新缓存 |
| WebRTC | 没有暴露不应出现的公网候选地址 | 连接状态变化后仍暴露真实地址 | 调整浏览器 WebRTC 设置 |
| 应用流量 | 实际应用遵循代理或虚拟网卡规则 | 浏览器正常,其他程序仍直连 | 检查分流规则和应用代理设置 |
电脑端 DNS 泄漏修复清单
Windows、macOS 和 Linux 的修复思路相同:让 VPN 客户端明确接管 DNS,确认 DNS 请求走隧道,再处理系统缓存和浏览器独立设置。若客户端提供“防 DNS 泄漏”“远程 DNS”“严格路由”“阻止隧道外 DNS”等选项,应先理解其作用再启用。严格模式通常会阻止无法通过隧道发送的查询,但也可能让某些局域网域名无法解析。
- ✅ 在客户端中启用 DNS 接管或远程 DNS,避免只开启普通系统代理。
- ✅ 使用虚拟网卡或全局接管模式测试一次,区分分流规则与隧道本身的问题。
- ✅ 检查物理网卡和虚拟网卡的 DNS 优先级,避免断开 VPN 后的 DNS 继续抢先响应。
- ✅ 修改设置后清理 DNS 缓存,再关闭并重新打开浏览器。
- ❌ 不要把多个 VPN 客户端的 DNS 转发器同时启动。
- ❌ 不要只把系统 DNS 手工改成某个公共 DNS,就认为已经完成加密保护。
Windows 用户可以先执行 ipconfig /flushdns 清理缓存;macOS 与 Linux 的缓存刷新方式会随系统版本和解析服务不同而变化,应优先使用系统网络服务或发行版文档提供的命令。清缓存的作用是让后续查询重新发起,它不能修复错误的路由,也不能替代客户端的 DNS 接管。
如果使用 Clash Verge 或 sing-box,应检查 DNS 模式、监听地址、Fake-IP 或 Redir-Host 相关设置,以及规则是否把 DNS 请求送到代理端。不同配置的行为差异很大:Fake-IP 可能改变应用看到的解析结果,直连 DNS 可能是分流设计的一部分。排查时建议先使用一份结构简单的配置,确认基础隧道正常,再逐步恢复复杂规则。
手机端与浏览器的处理方法
Android 设备需要同时留意 VPN 应用权限、私人 DNS、始终开启 VPN 和阻止无 VPN 连接等系统选项。私人 DNS 可能使用系统指定的 TLS 解析服务,也可能与 VPN 客户端的 DNS 方案冲突。若开启了“始终开启 VPN”或类似阻止无 VPN 连接的功能,断线时部分应用可能完全无法联网,这是保护策略生效,不应误判为 DNS 故障。
iOS 会通过系统 VPN 配置和网络扩展管理连接。连接后若网页正常但某些应用仍显示原地区,可能是应用使用了独立的网络路径、缓存了旧结果,或者客户端采用的是按应用分流。iOS 的系统权限、配置描述文件和蜂窝网络切换也值得检查。遇到 Wi-Fi 与蜂窝网络切换后状态异常,可以先断开 VPN,确认当前网络可用,再重新连接并重复检测。
浏览器层面要检查安全 DNS、代理扩展和 WebRTC 权限。安全 DNS 不一定是坏事,但如果它绕过了 VPN 客户端的统一策略,就会出现“网页走隧道、解析走浏览器”的分离情况。代理扩展也可能只作用于当前浏览器,不能代表其他应用受到保护。对于视频会议、在线课堂等 WebRTC 使用频繁的场景,应在实际浏览器和实际网络环境中验证,而不是只依赖客户端的连接提示。
公共 Wi-Fi 下的风险与自查顺序
公共 Wi-Fi 的风险不只来自 DNS 泄漏。热点可能要求网页认证、限制 UDP、拦截特定端口,或者在连接初期使用强制门户跳转。VPN 建立前,设备通常需要先完成热点认证;如果一连接 Wi-Fi 就立刻启用严格阻止模式,可能无法打开登录页面。更稳妥的做法是确认热点来源,完成必要的网络认证,然后再启动 VPN,并检查客户端是否显示完整握手。
在咖啡店、机场、酒店或会议场所,不要因为名称相似就直接连接开放热点。关闭文件共享、局域网发现和不必要的投屏功能,避免在同一局域网中暴露服务。VPN 可以减少部分传输被旁路观察的风险,但不能阻止钓鱼页面、恶意下载、账号盗用或设备本身感染恶意软件。
- 确认 Wi-Fi 名称和认证页面来自场所的正式渠道。
- 连接后先观察是否需要网页登录,不要在未知页面输入重要账号。
- 完成认证后启动 VPN,等待客户端显示连接稳定。
- 检查出口 IP、DNS 和 WebRTC,不要只查看系统状态栏。
- 使用网银或重要账号前,确认出口地区没有频繁变化。
- 离开热点后关闭自动加入,必要时忘记该网络。
如果公共网络只允许 TCP,而客户端当前线路依赖 UDP 或 QUIC,连接可能反复失败。这时可以在兼容的客户端中切换传输方式或协议,例如在支持的配置中尝试 Shadowsocks、VMess、Trojan、Hysteria2 或 WireGuard 的其他线路,但不要随意修改服务端未提供的参数。协议名称不是安全保证,关键仍是客户端是否正确验证服务端、流量是否按预期接管,以及 DNS 是否随隧道处理。
发现泄漏后怎样定位问题
排查应采用一次只改一项的方式。先关闭浏览器扩展和其他代理工具,保留一个客户端;再切换到全局接管或虚拟网卡模式测试。如果全局模式正常而规则模式异常,问题多半在分流规则、域名匹配或 DNS 规则。若全局模式仍然异常,则继续检查客户端权限、系统路由、虚拟网卡和网络扩展。
- ✅ 先确认客户端版本、订阅状态和权限没有异常。
- ✅ 断开后清理缓存,再连接并重新检测,避免使用旧查询结果。
- ✅ 分别测试浏览器、终端和一个常用应用,确认是否只有单个程序绕过代理。
- ✅ 更换网络环境后重复测试,区分本地 Wi-Fi 限制与客户端配置问题。
- ❌ 不要看到一个异常地址就立即认定所有流量都已泄漏。
- ❌ 不要同时改协议、DNS、分流和浏览器设置,否则很难知道哪一步产生了变化。
若只有浏览器出现 WebRTC 公网地址,应从浏览器权限和 WebRTC 策略入手;若所有设备都显示本地 DNS,则要检查客户端或订阅配置;若只有某个应用不受保护,则查看该应用是否使用 QUIC、独立代理、系统代理例外或自己的 DNS。Linux 上还要留意终端环境变量与桌面代理是否一致,Android 和 iOS 上则要留意应用级分流与系统网络切换。
DNS 泄漏自查常见问题
出口 IP 变了,为什么还要查 DNS?
出口 IP 和 DNS 是两条不同的观察线索。前者表示某些连接对外呈现的地址,后者表示域名查询由谁处理。VPN 可能成功接管网页连接,却遗漏系统、浏览器或某个应用发出的 DNS 请求,所以两者必须分别确认。
把 DNS 改成公共 DNS 就安全吗?
不一定。公共 DNS 可能改善解析可用性,但如果查询仍通过本地网络发送,网络路径和暴露范围并没有自动改变。应先确认客户端是否接管 DNS、查询是否经由隧道,再考虑解析服务的可靠性、隐私政策和分流需求。
WebRTC 检测显示内网地址,需要修复吗?
内网地址通常只在局域网中使用,单独出现不等于真实公网地址泄漏。真正需要关注的是是否出现与 VPN 出口不一致的公网候选地址,以及浏览器是否在断开 VPN 后仍保留可被外部识别的连接信息。根据使用场景调整 WebRTC 权限,并重新进行连接前后的对照测试。
修复后多久应该再次检查?
每次修改客户端、浏览器、系统网络设置、订阅配置或更换网络环境后,都应重新检查。特别是从家庭宽带切换到公共 Wi-Fi、从 Wi-Fi 切换到蜂窝网络,或系统更新网络扩展后,原先的结果不能直接当作当前状态。保持单一客户端、记录改动并重复验证,通常比频繁更换线路更容易找到问题。