VPN安全吗,不能只看客户端是否显示“已连接”。真正需要检查的是:DNS 请求有没有跟随隧道发送、浏览器的 WebRTC 是否暴露真实网络信息、断线后系统是否继续直连,以及服务商如何处理连接日志。VPN 主要负责改变流量的传输路径并提供加密保护,但它不会自动解决设备上的每一种隐私风险。
其中,DNS 泄漏尤其容易被忽略。你访问网站时,浏览器通常先通过 DNS 把域名解析成 IP 地址。如果这一步仍然交给本地网络服务商的 DNS 服务器处理,即使网页正文经过 VPN 隧道传输,查询过的域名仍可能暴露给网络服务商或其他能够观察 DNS 流量的第三方。本文将从原理、检测、修复和复查几个方面,建立一套不依赖单一网站的检查方法。
DNS
负责把域名转换为可连接的 IP 地址
WebRTC
浏览器实时通信功能,可能暴露本地网络信息
Kill Switch
隧道中断时阻止流量回落到直连
日志政策
决定服务端如何处理连接与使用记录
DNS 泄漏到底是怎么发生的
打开网页时,设备通常要经历“输入域名、查询 DNS、获得 IP、建立连接”这几个环节。VPN 连接成功后,理想状态是 DNS 查询也通过加密隧道交给 VPN 服务端或指定的加密 DNS 解析器,再由它向外完成解析。这样,本地网络只能看到设备与 VPN 服务器之间的加密连接,而不容易直接看到具体查询内容。
但实际情况可能不同。部分客户端只接管浏览器或指定应用的代理流量,系统服务、游戏、邮件客户端和其他应用仍然按照本地网络的 DNS 设置工作。还有一些客户端虽然建立了隧道,却因为“绕过代理”“智能分流”或 IPv6 处理不完整,让部分查询从物理网卡直接发出。此时网页内容可能走了 VPN,DNS 却走了本地出口,这就是常说的 DNS 泄漏。
常见成因可以分为几类。第一类是客户端本身没有接管系统 DNS,或者只在全局模式下接管,切换到规则模式后出现例外。第二类是系统中残留了多个网络适配器,例如 Wi-Fi、网线、虚拟网卡和旧代理软件同时存在,解析请求被优先级更高的接口接收。第三类是 IPv6 没有纳入隧道,设备通过 IPv6 直接访问 DNS 服务器。第四类是浏览器启用了自己的 DNS over HTTPS,查询虽然加密了,却未必经过 VPN 设定的解析路径。
DNS over HTTPS 或 DNS over TLS 可以减少局域网对查询内容的直接观察,但它们并不等于“没有泄漏”。如果浏览器把请求发送给自己预设的第三方解析服务,VPN 客户端可能无法按照预期接管;而且解析服务商仍可能获得查询记录。因此,判断重点不是 DNS 名称听起来是否安全,而是查询是否通过预期隧道、解析服务商是谁,以及客户端和浏览器的设置是否一致。
DNS 泄漏会暴露什么
DNS 查询通常包含域名信息,而域名本身可能反映你的兴趣、工作系统、常用服务或访问习惯。它不一定直接包含网页正文、账号密码或具体页面内容,但长期收集后,仍可能形成较明显的访问画像。对于企业内网、云服务后台或个人项目域名,DNS 记录还可能暴露你正在使用的服务类型。
需要区分 DNS 泄漏与 IP 泄漏。DNS 泄漏是域名解析请求走了不希望使用的解析路径;IP 泄漏则是网站通过连接来源、IPv6、WebRTC 或其他机制看到真实公网地址。二者可能同时发生,也可能只发生其中一种。例如 DNS 已经通过隧道处理,但浏览器的 WebRTC 仍显示本地候选地址;也可能公网 IP 已经改变,但系统 DNS 仍指向本地服务商。
还要留意应用层的分流。规则模式下,本地银行、企业办公系统或局域网地址可能被设计为直连,这不必然是泄漏,而可能是用户主动选择的策略。问题在于规则是否透明、是否能识别 DNS 请求,以及应用的实际行为是否与你的预期相同。排查时不要看到一个本地地址就立刻下结论,应先确认它属于 DNS、WebRTC、局域网服务还是正常的分流结果。
| 检查项目 | 可能暴露的信息 | 重点观察 |
|---|---|---|
| DNS 查询 | 访问过的域名或解析请求 | 解析服务商、出口位置、请求是否随隧道发送 |
| 公网 IP | 网络出口地址与大致位置 | 连接前后地址是否符合预期 |
| IPv6 | 另一条未纳入隧道的网络路径 | 客户端是否支持并接管 IPv6 |
| WebRTC | 浏览器候选地址与本地网络信息 | 浏览器是否允许实时通信暴露地址 |
动手检测DNS 是否泄漏
检测前先记录当前网络状态。确认设备是通过 Wi-Fi、网线还是移动网络连接,暂时关闭其他代理工具,并记下 VPN 未连接时的公网 IP 和 DNS 服务商。这样做不是为了保存敏感信息,而是为了给后面的对比提供基准。检测过程中尽量使用同一台设备、同一浏览器和同一网络,避免多个变量同时变化。
- 先断开 VPN,打开可靠的 IP 与 DNS 检测页面,记录显示的解析服务商和网络出口。
- 关闭页面后连接 VPN,等待客户端显示连接成功,再重新执行检测。
- 比较连接前后的 DNS 服务商、国家或地区信息,以及是否仍显示本地网络服务商。
- 切换一次线路或连接模式,再做一轮测试,观察结果是否始终符合预期。
- 分别在浏览器、常用应用和系统网络设置中复查,避免只验证浏览器页面。
如果检测页面显示的 DNS 服务商属于本地宽带或移动网络,而 VPN 的公网出口已经改变,通常说明 DNS 没有完全跟随隧道。若页面显示多个解析服务商,也不要只看数量下结论;有些服务会使用多个上游解析节点。更重要的是确认其中是否出现不应出现的本地服务商,以及不同连接模式下结果是否稳定。
检测时还可以使用命令行进行交叉验证。Windows 可在命令提示符中使用 ipconfig /all 查看当前网卡和 DNS 地址;macOS 或 Linux 可以使用系统网络信息工具检查解析器配置。命令行看到的地址只是设备当前配置,不一定能证明请求实际经过哪条路径,因此应把它与浏览器检测、客户端日志和断线测试结合起来。
修复 DNS 泄漏的正确顺序
先检查客户端的 DNS 接管
打开客户端设置,寻找“防止 DNS 泄漏”“使用远程 DNS”“DNS 接管”“保护 DNS 请求”或类似选项。不同官方客户端、Clash Verge、sing-box、Shadowrocket 等兼容客户端的名称和位置可能不同,但逻辑相近:让代理核心接管解析请求,并明确处理 IPv4 与 IPv6。修改后保存设置,完全退出并重新启动客户端,再进行检测。
如果使用订阅导入配置,优先使用服务商为当前客户端提供的对应格式,不要随意把一种配置转换成另一种格式。Shadowsocks、VMess、Trojan、Hysteria2 和 WireGuard 的工作方式与配置字段并不相同;客户端能导入订阅,不代表它支持其中每一种协议,也不代表转换后的 DNS 规则保持完整。遇到某个客户端持续泄漏时,可先用官方客户端做对照,区分是服务配置问题还是本地核心兼容问题。
处理系统、浏览器与 IPv6
检查系统网络设置中是否仍固定填写了旧的 DNS 地址,或存在多个网络适配器同时提供解析。不要在不了解后果的情况下盲目修改路由器和系统 DNS;有些网络依赖自动分配,有些企业网络则需要内部解析。更稳妥的做法是先记录原设置,再按照客户端说明启用 DNS 接管,出现局域网服务异常时可以恢复。
浏览器的安全 DNS 选项也需要单独确认。如果浏览器启用了自定义 DNS over HTTPS,而客户端要求统一接管 DNS,两者可能产生竞争。可以暂时关闭浏览器自定义解析进行对照,或选择与客户端策略一致的解析方式。对于 IPv6,若客户端明确支持,应确认隧道和防火墙都覆盖 IPv6;若当前客户端无法处理 IPv6,则应按照官方说明关闭系统 IPv6 或阻止其通过物理网卡直连,而不是仅修改 IPv4 设置。
确认规则模式没有遗漏
规则模式并不等于所有请求都进入隧道。某些配置会让国内域名、局域网地址、系统服务或特定应用直连。直连本身可能是合理设计,但 DNS 解析也必须遵循同一规则,否则会出现“连接走代理、解析走本地”的不一致。检查配置中的 DNS 模式、fake-ip 或 redir-host 行为、绕过列表和自定义规则,确认它们符合自己的使用需求。
- ✅ 优先启用客户端提供的 DNS 防泄漏或远程解析选项。
- ✅ 导入与客户端核心匹配的订阅格式,确认协议支持情况。
- ✅ 检查浏览器自定义 DNS over HTTPS 是否与客户端设置冲突。
- ✅ 重新连接后分别测试 IPv4、IPv6、浏览器和常用应用。
- ❌ 不要同时运行多个代理客户端,让它们重复修改 DNS 和系统路由。
- ❌ 不要把检测页面显示的单个地址直接当作完整安全结论。
WebRTC 与 Kill Switch也要检查
WebRTC 是浏览器用于音视频通话、屏幕共享和实时数据传输的技术。它可能通过 ICE 候选机制收集网络地址。现代浏览器通常会做一定限制,但不同浏览器、版本和权限设置的行为并不完全一致。即使 DNS 已经修复,也建议在常用浏览器中执行 WebRTC 泄漏测试,并检查是否存在真实公网地址、局域网地址或不符合当前出口的候选信息。
如果不需要浏览器的实时通信功能,可以在浏览器隐私设置或可信扩展中限制 WebRTC;如果需要视频会议,则应优先使用浏览器提供的隐私控制,并测试会议功能是否受到影响。不要安装来源不明的扩展,也不要为了隐藏地址而关闭所有浏览器网络功能。隐私和可用性需要根据实际场景取舍。
Kill Switch 解决的是另一种问题:VPN 隧道意外中断时,系统是否会自动恢复普通直连。如果没有断线保护,DNS 和网页流量都可能在重连期间短暂从本地网络发出。启用后,客户端通常会通过防火墙规则阻止未经过隧道的流量,直到连接恢复或用户主动关闭保护。
启用 Kill Switch 后,应进行一次主动验证。连接 VPN,打开网页确认工作正常,然后在客户端内断开或切换线路,观察网络是否按设置停止,而不是悄悄恢复直连。随后重新连接并检查 DNS。若办公软件、局域网打印机或本地网站无法访问,先查看是否有允许局域网流量的选项,不要直接关闭全部保护。
日志政策应该怎么看
DNS 不泄漏,不代表服务商完全看不到任何信息。只要 DNS 查询由某个解析服务处理,该服务理论上就可能接触查询请求;VPN 服务端也可能看到连接建立时间、账户标识、流量使用或线路选择等运行数据。因此,安全检查不能只停留在客户端设置,还要阅读服务商的隐私政策、服务条款和退款说明。
阅读时重点寻找几个问题:服务是否说明保存哪些连接日志;是否记录源 IP、连接时间、请求域名或访问目的地;日志保存多久;是否会向第三方提供;发生安全事件时如何通知用户。若页面只写“绝对匿名”却没有具体解释,应保持谨慎。技术保护、运营政策和法律责任是不同层面,不能用营销口号替代清晰条款。
还要保护订阅链接和账户凭据。订阅往往包含与账户关联的访问权限,不应粘贴到公开聊天、在线转换网站或不明客户端中。使用 Windows、macOS、Android、iOS 或 Linux 官方客户端时,应从 VFVPN 面板获取对应下载入口;使用 Clash Verge、sing-box 或 Shadowrocket 等兼容客户端时,也要确认配置格式和来源可信。客户端本身若被植入恶意代码,DNS 设置再正确也无法弥补。
日常安全检查怎么做
一次检测通过后,不代表以后永远不会变化。系统升级、浏览器更新、切换网络、导入新订阅、修改规则以及安装其他网络工具,都可能改变 DNS 或路由行为。建议把检查变成简单的使用习惯:更换网络后测试一次,更新客户端或订阅后复查一次,遇到网站地区异常、应用突然无法连接或断线后网络继续可用时优先检查 DNS 与 Kill Switch。
- ✅ 连接前后分别核对公网 IP 和 DNS 服务商。
- ✅ 在全局和规则模式下各做一次对照测试。
- ✅ 更换 Wi-Fi、网线或移动网络后重新连接客户端。
- ✅ 检查浏览器 WebRTC 和自定义 DNS 设置。
- ✅ 启用适合自己场景的 Kill Switch,并测试断线行为。
- ✅ 保存原始网络设置,修改前确保能够恢复。
- ❌ 不要把“状态栏有 VPN 图标”当成全部流量都已保护。
- ❌ 不要同时开启多个 VPN、代理、加速器或 DNS 接管工具。
如果多次调整后仍然出现本地 DNS,建议先恢复为单一、干净的网络环境:退出其他代理工具,删除无用的虚拟适配器,恢复系统自动 DNS,再只启动一个客户端进行测试。随后逐项开启自定义规则、浏览器安全 DNS 和 IPv6,而不是一次性全部改动。这样更容易定位真正产生问题的设置。
常见问题
DNS 泄漏是不是说明 VPN 完全没有加密?
不一定。它通常说明部分 DNS 查询没有按照预期进入 VPN 隧道,网页正文和其他流量仍可能经过加密连接。但泄漏会暴露域名查询信息,因此仍应修复,并检查是否同时存在 IPv6、WebRTC 或断线直连问题。
使用 DNS over HTTPS 后还需要检测吗?
需要。DNS over HTTPS 能加密浏览器到解析服务之间的请求,但请求可能绕过 VPN 客户端的 DNS 策略,且解析服务商仍可能接触查询内容。应确认浏览器、系统和客户端的解析路径是否一致。
规则模式下出现本地 DNS,一定是故障吗?
不一定。有些规则会让局域网或特定域名直连,这是配置设计的一部分。关键是确认该结果是否符合自己的预期,并检查其他不应直连的请求是否也被本地解析。若无法判断,可暂时切换到全局模式进行对照。
Kill Switch 开启后无法访问局域网,应该怎么办?
先查看客户端是否提供“允许局域网访问”或类似选项,并确认办公系统、打印机等地址是否需要直连。不要直接关闭全部断线保护;应在理解规则后只放行必要的局域网流量,再重新验证断线时的外网行为。