DNS 泄露
约 4 分钟阅读
最后更新: 2026-03-08
什么是 DNS 泄漏
DNS 泄漏是指在使用 VPN 的情况下,DNS 查询被发送到 VPN 隧道之外(通常是运营商的 DNS 服务器)的现象。
VPN 的目的是加密通信并对第三方隐藏访问目标,但当 DNS 泄漏发生时,运营商或网络管理员可以看到你正在访问哪些域名。也就是说,即使通过 VPN 隐藏了 IP 地址,浏览目标信息仍会泄露,这是一个严重的隐私问题。
DNS 泄漏的原因
DNS 泄漏可能由多种原因引起。
DNS 泄漏的检测方法
检测 DNS 泄漏相对简单。按以下步骤确认。
- 在连接 VPN 的状态下,访问 DNS 泄漏测试网站(本站首页也可以查看 DNS 服务器信息)。
- 确认显示的 DNS 服务器的 IP 地址和所属组织。
- 如果 DNS 服务器属于你的运营商而非 VPN 提供商,则说明发生了 DNS 泄漏。
例如,如果你使用中国的运营商并连接到美国的 VPN 服务器,但显示的 DNS 服务器属于中国的运营商,则说明发生了 DNS 泄漏。
也可以通过命令行确认。在 Windows 上执行 nslookup example.com,检查响应的 DNS 服务器地址是否属于你的 VPN 提供商。
DNS 泄漏的对策
以下是按优先级排列的防止 DNS 泄漏的具体对策。
- 检查 VPN 的 DNS 设置:可靠的 VPN 服务运营自己的 DNS 服务器,并强制 DNS 流量通过隧道。确认 VPN 应用设置中的「DNS 泄漏保护」是否已启用。
- 启用 DNS over HTTPS (DoH):启用浏览器的 DoH 功能后,DNS 查询通过 HTTPS 加密,即使泄漏到隧道外也难以被截获。
- 启用 VPN 终止开关:VPN 连接断开时阻止所有通信的功能。不仅防止 DNS 泄漏,还能防止 IP 地址泄露。
- 禁用 IPv6(临时措施):如果 VPN 不支持 IPv6,禁用操作系统的 IPv6 可以防止 IPv6 DNS 泄漏。但这意味着无法享受 IPv6 的优势,理想情况下应等待 VPN 添加 IPv6 支持。
DNS 泄漏测试的实践方法
要准确判断是否存在 DNS 泄漏,使用多种方法进行验证很重要。单一测试可能会遗漏间歇性泄漏。
基于 Web 的测试工具:dnsleaktest.com 提供「标准测试」和「扩展测试」两种。扩展测试发送多次 DNS 查询,可以检测间歇性泄漏,因此推荐使用。ipleak.net 是一个综合工具,除了 DNS 泄漏外,还可以同时检查 WebRTC 泄漏和 IP 地址泄露。
命令行验证:在 Windows 上执行 nslookup example.com,确认响应的 DNS 服务器地址。在 macOS/Linux 上检查 dig example.com 输出中的 SERVER 行。如果 DNS 服务器 IP 属于运营商而非 VPN 提供商,则说明发生了泄漏。更详细的确认可以使用 dig +trace example.com 追踪整个 DNS 解析路径。
结果解读:确认测试结果中显示的 DNS 服务器的 IP 地址和所属组织名称。在 VPN 连接期间,DNS 服务器应属于 VPN 提供商(或 VPN 提供商指定的公共 DNS)。如果显示运营商名称,则说明发生了 DNS 泄漏。如果显示多个 DNS 服务器且其中混有运营商的服务器,则属于部分泄漏。
检测到泄漏时的处理:首先检查并启用 VPN 应用的 DNS 泄漏保护设置。如果问题仍未解决,在操作系统的网络设置中手动将 DNS 服务器更改为 VPN 提供商的服务器。禁用 Windows 的「智能多宿主名称解析」通常也能解决问题。启用 DNS over HTTPS 可以提供双重防御,即使发生泄漏,DNS 查询内容也会被加密。
常见误解
- 使用 VPN 就不会发生 DNS 泄漏
- 根据 VPN 的质量和配置,DNS 泄漏是可能发生的。免费 VPN 和配置不当的 VPN 发生 DNS 泄漏的概率很高。连接 VPN 后应始终进行泄漏测试。
- DNS 泄漏不是什么大问题
- DNS 查询包含你访问的所有域名。运营商可以记录你对医疗网站、政治网站和特定服务的访问历史,对隐私的影响是严重的。如果使用 VPN 的目的是保护隐私,DNS 泄漏从根本上损害了这一目的。