您已连接到 VPN。锁定图标亮起。你感觉很私密。

但是您的 VPN 很有可能正在泄漏——在您认为一切都受到保护的情况下,悄悄地将未加密的数据发送到隧道外。 DNS 泄漏、WebRTC 泄漏和 IPv6 泄漏在免费和付费 VPN 中都很常见,而且大多数用户从不检查它们。

本指南将向您准确展示每种泄漏类型是什么、技术上为什么会发生、如何在五分钟内测试它,以及如何在任何操作系统或浏览器上修复它。

---

为什么会发生泄漏

VPN 的工作原理是通过加密隧道将所有网络流量路由到远程服务器。关键词是 全部。如果您的流量的任何部分逃离该隧道并直接进入互联网,您的真实 IP 和身份就会暴露——无论 VPN 对其他所有内容的加密程度如何。

泄漏的发生是因为现代操作系统和浏览器做出的架构决策将速度和兼容性置于隐私之上。 VPN 经常与这些默认行为作斗争。

泄漏主要分为三种类型:

  • DNS 泄漏 — 您的 DNS 查询(域查找)离开 VPN 隧道并到达您的 ISP
  • WebRTC 泄露 — 您的浏览器通过点对点通信 API 公开您的真实 IP
  • IPv6 泄漏 — 您的 IPv6 流量完全绕过 VPN,因为许多 VPN 只处理 IPv4

让我们逐一逐一讨论。

---

DNS 泄漏:最常见的问题

发生了什么事

每次您访问网站时,您的设备都会发送 DNS 查询 - 本质上是询问“该域名的 IP 地址是什么?”在 VPN 的正常操作下,这些查询应通过 VPN 隧道到达 VPN 提供商的 DNS 服务器。当出现 DNS 泄漏时,它们会转至 ISP 的 DNS 服务器。

实际结果:即使您的实际浏览流量已加密,您的 ISP 也会看到您访问的每个域。您的 VPN 正在加密您的连接内容,而您的 ISP 则维护您正在访问的网站的完整列表。

为什么会发生 DNS 泄漏

Windows 智能多宿主名称解析 (SMHNR) 是最常见的罪魁祸首。它在 Windows 8 中引入,并在 Windows 11 中仍然有效,旨在通过同时向所有可用的 DNS 服务器发送查询并接受最先响应的服务器来加速 DNS。在 VPN 上,这意味着查询会同时发送到 VPN 的 DNS 服务器和 ISP 的服务器,并且您的 ISP 几乎总是响应速度更快。

特雷多 是另一个 Windows 问题 — 一种 IPv6 转换协议,可以完全绕过 VPN 隧道路由流量。如果启用,它可能优先于您的 VPN。

IPv6 不兼容 会导致 DNS 泄漏。

VPN 客户端配置错误 根本无法通过隧道重定向 DNS 流量。这在较旧或质量较低的 VPN 软件中更为常见。

如何测试

  1. 连接到您的 VPN
  2. 参观 dnsleaktest.com 点击“扩展测试”
  3. 查看结果 — 您将看到收到您的查询的 DNS 服务器列表

你想看的: 属于您的 VPN 提供商的 DNS 服务器(或受信任的公共解析器,如 Cloudflare 1.1.1.1 或 Quad9 9.9.9.9)。

有什么问题: 您的 ISP 名称出现在 DNS 服务器列表中。即使结果中只有一台 ISP DNS 服务器,也意味着您的查询正在泄漏。

您还可以在以下位置进行全面检查: ipleak.net,在单个页面上测试 DNS、IP 和 WebRTC。

如何修复 DNS 泄漏

在您的 VPN 应用程序中: 查找名为“DNS 泄漏保护”、“防止 DNS 泄漏”或“使用 VPN DNS”的设置。启用它。这告诉 VPN 客户端强制所有 DNS 查询通过隧道。

手动设置您的 DNS 服务器 到受信任的公共解析器:

  • Cloudflare: 1.1.1.1 / 1.0.0.1
  • Quad9: 9.9.9.9 / 149.112.112.112

这本身并不能防止泄漏,但可以确保如果查询确实逃出了隧道,它至少不会到达您的 ISP 的服务器。

在 Windows 上禁用 SMHNR(专业版/企业版):

  1. 按 Win+R,输入 gpedit.msc
  2. 导航至:计算机配置 → 管理模板 → 网络 → DNS 客户端
  3. 找到“关闭智能多宿主名称解析”→设置为 已启用
  4. 重新启动Windows

在 Windows 上禁用 Teredo: 以管理员身份打开命令提示符并运行:

命令
netsh interface teredo set state disabled

进行更改后,在 dnsleaktest.com 重新测试以确认修复有效。

---

WebRTC 泄露:浏览器问题

发生了什么事

WebRTC(网络实时通信)是一种浏览器标准,可实现视频通话、语音聊天和文件共享等点对点功能。要在两个浏览器之间建立直接连接,WebRTC 需要使用 STUN(NAT 会话遍历实用程序)服务器发现两个设备的真实 IP 地址。

问题在于:这些 STUN 请求在浏览器级别绕过您的 VPN 隧道。在任何网页上运行的 JavaScript 都可以默默地触发 WebRTC IP 发现请求,读取结果,并将您的真实 IP 发送到服务器 - 同时您的 VPN 的锁定图标坐在那里,看起来令人放心。

这会不同程度地影响 Chrome、Firefox、Edge、Opera 和 Brave。这是浏览器架构问题,而不是 VPN 故障。

如何测试

  1. 连接到您的 VPN
  2. 参观 browserleaks.com 然后点击“WebRTC”
  3. 查看“您的 IP 地址”下列出的 IP 地址

你想看的: 仅您的 VPN 服务器的 IP 地址。

有什么问题: 您的真实 ISP 分配的 IP 出现在结果中的任何位置,特别是在“公共 IP 地址”下。

您还可以查看 ipleak.net — 它内置了 WebRTC 部分。

如何修复 WebRTC 泄漏(逐个浏览器)

火狐 — 最佳原生控件:

  1. 类型 about:config ,然后按 Enter
  2. 接受警告并寻找 media.peerconnection.enabled
  3. 双击切换至 false
  4. 对于额外硬化:也设置 media.peerconnection.ice.default_address_only 至 true

勇敢 — 具有内置 WebRTC 控件:

  1. 设置 → 隐私和安全 → WebRTC IP 处理策略
  2. 选择 “禁用非代理 UDP”
  3. 重启勇敢

铬 — 无本机设置(主要限制):

  • 安装 《WebRTC 控制》 延长线
  • 该扩展添加了一个开关以禁用每个会话的 WebRTC

边缘:

  1. 类型 about:flags 在地址栏中输入
  2. 搜索“WebRTC”
  3. 启用“匿名化 WebRTC 公开的本地 IP”
  4. 重新启动 Edge

Tor 浏览器: WebRTC 默认情况下完全禁用。无需采取任何行动。

注意: 禁用 WebRTC 将中断 Google Meet、Zoom(浏览器版)和浏览器中的 Discord 等视频通话服务。如果您需要这些服务,请在使用时重新启用 WebRTC,然后再将其禁用。

---

IPv6 泄露:协议不匹配

发生了什么事

现代互联网连接是双栈的,这意味着它们同时支持 IPv4 和 IPv6。 IPv4 几十年来一直是标准。 IPv6 是旨在取代它的较新协议,具有更大的地址空间。

大多数 VPN 都是在 IPv4 占主导地位时构建的。他们为 IPv4 流量创建加密隧道,但不对 IPv6 流量进行处理。如果您的连接分配了 IPv6 地址(大多数家庭和蜂窝连接上都可能这样做),则该流量将完全在 VPN 隧道之外传输。任何具有 IPv6 地址的网站都会收到您的真实 IPv6 地址,而不是您的 VPN 地址。

IPv6 地址通常比 IPv4 地址更持久、更具体,使得这种泄漏可能比标准 IPv4 泄漏更容易识别。

如何测试

  1. 连接到您的 VPN
  2. 参观 ipleak.net 并向下滚动到 IPv6 部分

你想看的: 未检测到 IPv6 地址,或者 IPv6 地址属于您的 VPN 提供商。

有什么问题: 显示您的真实 IPv6 地址 — 特别是当它与您的 ISP 分配的前缀匹配时。

您可以通过断开 VPN 并访问 ipleak.net 进行比较来单独验证您的真实 IPv6 地址。

如何修复 IPv6 泄漏

选项 1:使用完全支持 IPv6 的 VPN。 Mulvad 通过 VPN 隧道路由 IPv6 流量。 NordVPN 默认阻止 IPv6 以防止泄露。如果您的 VPN 支持,这是最干净的解决方案。

选项 2:在操作系统级别禁用 IPv6 (最简单的通用修复):

窗户:

  1. 设置 → 网络和 Internet → 高级网络设置
  2. 右键单击您的活动网络适配器 → 属性
  3. 取消选中“Internet 协议版本 6 (TCP/IPv6)”
  4. 点击确定

或通过 PowerShell(适用于所有适配器):

命令
Disable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6

macOS:

命令
sudo networksetup -setv6off Wi-Fi
sudo networksetup -setv6off Ethernet

Linux: 将这些行添加到 /etc/sysctl.conf:

命令
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

然后申请:

命令
sudo sysctl -p

禁用 IPv6 后,在 ipleak.net 上重新测试。 IPv6 部分应显示“未检测到 IPv6 地址”。

---

死亡开关:你的最后一道防线

如果 VPN 连接意外断开,终止开关会阻止所有互联网流量。如果没有,VPN 的短暂中断(在重新连接、网络切换或睡眠/唤醒周期期间)会短暂暴露您的真实 IP 和 DNS 流量。

每个正规的VPN都有这个功能。根据提供商的不同,它可能被称为“Kill Switch”、“网络锁”、“永远在线 VPN”或“Internet Kill Switch”。

启用它。 如果您满足以下条件,这一点尤其重要:

  • 频繁切换网络(家庭→热点→办公室)
  • 让您的 VPN 在睡眠/休眠状态下保持运行
  • 使用 VPN 进行即使是短暂暴露也很重要的活动

测试一下: 连接到您的 VPN,启用终止开关,然后断开您的 VPN,而无需先禁用终止开关。尝试加载网页。在您重新连接 VPN 之前,它应该无法加载。如果页面加载的是您的真实 IP,则终止开关不起作用。

---

完整测试清单

在初始 VPN 设置后、操作系统更新后以及 VPN 应用程序更新后运行此序列:

  1. 连接VPN,等待10秒连接稳定
  2. 参观 ipleak.net — 确认 IP、DNS 服务器和 WebRTC 均显示 VPN 数据
  3. 参观 dnsleaktest.com — 运行扩展测试,确认所有 DNS 服务器属于 VPN 提供商
  4. 参观 browserleaks.com/webrtc — 确认 WebRTC 结果中没有真实 IP
  5. 检查 ipleak.net 上的 IPv6 部分 — 确认没有真正的 IPv6 地址
  6. 断开 VPN 连接(启用终止开关)- 确认页面不会加载
  7. 重新连接 VPN — 确认一切都返回 VPN 数据

如果任何测试显示您的真实 IP 或 ISP 数据,请在考虑您的设置安全之前解决该泄漏问题。

---

哪些 VPN 能够最好地处理泄漏

穆尔瓦德: 默认情况下启用 DNS 泄漏保护、内置 WebRTC 阻止、通过隧道的完整 IPv6 路由。所有主流 VPN 中最注重隐私保护的默认设置。

NordVPN: 默认开启 DNS 保护,自动阻止 WebRTC,默认阻止 IPv6 以防止泄露。 “网络锁”终止开关可用。

质子 VPN: 保护扎实,但有些设置需要手动验证。 DNS 泄漏保护和终止开关需要在某些平台上显式启用。鉴于他们的隐私记录,值得额外的设置时间。

ExpressVPN: 自动禁用 IPv6 以防止泄漏,通过 VPN 处理 DNS。非常用户友好,需要更少的手动配置步骤。

如果操作系统级别设置干扰,所有这些仍然可能泄漏。无论您使用哪种 VPN,都请按照上述步骤测试您的设置。

---

泄露的内容实际上让你接触到了什么

DNS 泄漏在特定情况下最为重要:如果您的 ISP 记录并出售 DNS 数据,如果您位于有监控程序的司法管辖区,如果您位于受监控的网络(工作、学校、公共 WiFi)上,或者如果您正在访问 ISP 根据目的地限制的内容。

对于在尊重隐私的司法管辖区进行日常浏览的大多数用户来说,DNS 泄漏是一种隐私侵犯行为,但不会构成直接的安全风险。对于记者、活动人士或敌对网络上的任何人来说,DNS 泄漏可能会暴露真正危险的访问模式。

无论您的威胁模型如何,修复漏洞都不需要任何成本,只需十分钟。没有理由不这样做。

---

使用以下命令检查您当前的 IP、DNS 和网络详细信息 IP 查找工具 — 在测试 VPN 设置之前可用作基准。