IP 地址与网络

DNS 泄露

约 4 分钟阅读

什么是 DNS 泄漏

DNS 泄漏是指在使用 VPN 的情况下,DNS 查询被发送到 VPN 隧道之外(通常是运营商的 DNS 服务器)的现象。

VPN 的目的是加密通信并对第三方隐藏访问目标,但当 DNS 泄漏发生时,运营商或网络管理员可以看到你正在访问哪些域名。也就是说,即使通过 VPN 隐藏了 IP 地址,浏览目标信息仍会泄露,这是一个严重的隐私问题。

DNS 泄漏的原因

DNS 泄漏可能由多种原因引起。

  • 操作系统的默认 DNS 设置:Windows 即使在 VPN 连接期间,也可能向物理网络适配器上配置的 DNS 服务器发送查询。特别是当「智能多宿主名称解析」功能启用时,会同时向 VPN 隧道外的 DNS 服务器发送查询。
  • VPN 客户端配置不当:当 VPN 应用未正确设置路由规则以强制 DNS 流量通过隧道时会发生。在廉价 VPN 服务中较为常见。
  • IPv6 DNS 泄漏:当 VPN 仅隧道化 IPv4 流量时,IPv6 DNS 查询可能泄漏到隧道外。在 IPv6 支持不完善的 VPN 中频繁发生。
  • 通过 WebRTC 泄漏:浏览器的 WebRTC 功能可能绕过 VPN 进行 DNS 查询。

DNS 泄漏的检测方法

检测 DNS 泄漏相对简单。按以下步骤确认。

  1. 在连接 VPN 的状态下,访问 DNS 泄漏测试网站(本站首页也可以查看 DNS 服务器信息)。
  2. 确认显示的 DNS 服务器的 IP 地址和所属组织。
  3. 如果 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 泄漏从根本上损害了这一目的。
分享

相关术语