Network

WebRTC 泄漏测试 — 什么是 WebRTC 泄漏以及如何修复它

了解什么是 WebRTC 泄漏、为什么它会在 VPN 保护下暴露您的真实 IP 地址、如何进行测试,以及在所有主流浏览器中修复它的具体步骤。

9分钟阅读

WebRTC 泄漏测试 — 网络隐私与 IP 地址

您打开了 VPN,连接到另一个国家的服务器,以为自己的真实 IP 地址已经被隐藏。但 WebRTC —— 一个直接内置于所有主流浏览器中的协议 —— 可以悄无声息地将您的真实 IP 地址广播给您访问的每一个网站,完全绕过 VPN。

这就是所谓的 WebRTC 泄漏,数以百万计的 VPN 用户在毫不知情的情况下受到影响。

什么是 WebRTC?

WebRTC(Web 实时通信)是一种开放标准,允许浏览器之间直接通信,用于视频通话、语音聊天、文件共享和点对点连接 —— 无需插件或中间服务器。

它原生内置于 Chrome、Firefox、Safari、Edge 和 Opera 中。当您使用 Google Meet、浏览器版 Discord 或任何基于网页的视频通话时,背后驱动这一切的正是 WebRTC。

为了建立直接的点对点连接,WebRTC 需要了解您实际的网络路径。它通过一个名为 **ICE(交互式连接建立)**的过程来实现这一点,该过程会查询您设备上所有可用的网络接口 —— 包括您的真实 IP 地址 —— 即使您已连接到 VPN,也不例外。


什么是 WebRTC 泄漏?

WebRTC 泄漏是指网站利用 WebRTC API 发现您的真实 IP 地址(或本地网络 IP),即使您已连接到 VPN。

您的 VPN 通过其服务器隧道传输您的互联网流量 —— 这正是对网站隐藏您 IP 的方式。但 WebRTC 直接在操作系统层面查询设备的网络接口,在流量到达 VPN 隧道之前就完成了查询。结果是:您的真实 IP 地址在未经过 VPN 的情况下就被交给了网站。

WebRTC 可能暴露哪些信息?

数据类型 泄露的内容
公网 IP 您真实的互联网 IP(由您的 ISP 分配)
本地 IP 您的私有网络 IP(例如 192.168.1.x)
IPv6 地址 您的 IPv6 地址,即使您的 VPN 仅隧道 IPv4 流量
多个网络接口 您设备上的所有网络适配器(Wi-Fi、以太网、VPN 适配器)

最关键的是公网 IP —— 如果网站能看到它,您的 VPN 在该会话中就无法提供任何匿名性。

为什么这能绕过 VPN?

大多数 VPN 客户端通过加密隧道路由所有 TCP 和 UDP 流量。但 WebRTC 使用 STUN(NAT 会话穿越工具)服务器来解析 ICE 候选地址,在某些配置下,STUN 查询可能会在 VPN 隧道之外传输。即使查询经过隧道,您的本地网络 IP 仍然可以直接从浏览器的 ICE 候选列表中读取。


如何测试 WebRTC 泄漏

最快的检测方式是在连接 VPN 的情况下使用 WebRTC 泄漏测试工具

以下是完整的测试步骤:

  1. 断开 VPN 并访问测试页面,记录您的真实公网 IP 地址。
  2. 连接 VPN 后再次访问测试页面。
  3. 该工具会列出您的浏览器通过 WebRTC ICE 候选地址暴露的所有 IP 地址。
  4. 如果步骤 1 中的真实 IP 出现在步骤 3 的结果中,则说明存在 WebRTC 泄漏。

解读测试结果

结果 含义
仅显示 VPN 服务器 IP 无泄漏 —— 您受到保护
仅显示本地 IP(192.168.x.x、10.x.x.x) 轻微 —— 本地 IP 无法在外部识别您的身份
显示真实公网 IP 泄漏已确认 —— 您的真实 IP 可见
显示 IPv6 地址 IPv6 泄漏 —— 请禁用 IPv6 或使用支持 IPv6 的 VPN

注意: 看到 192.168.x.x 或 10.x.x.x 地址是正常的 —— 这些是私有(RFC 1918)地址,仅在您的本地网络内可见。危险的泄漏是您的真实公网 IP。


如何修复 WebRTC 泄漏

修复方案 1:使用具有 WebRTC 泄漏保护功能的 VPN

这是最简洁的解决方案。Mullvad、ProtonVPN 和 ExpressVPN 等高级 VPN 服务内置了 WebRTC 泄漏保护,可阻止 STUN 请求绕过隧道。请检查您的 VPN 设置 —— 通常会有"WebRTC 泄漏保护"或"浏览器 WebRTC 拦截"的开关。

修复方案 2:在 Firefox 中禁用 WebRTC

Firefox 允许您原生禁用 WebRTC:

  1. 打开新标签页,在地址栏中输入 about:config
  2. 点击接受风险并继续
  3. 在搜索栏中输入 media.peerconnection.enabled
  4. 双击将其值设为 false
  5. 重启 Firefox

这将完全禁用 WebRTC。需要 WebRTC 的网页应用(视频通话、屏幕共享)将无法使用。需要时按相同方式重新启用。

修复方案 3:使用浏览器扩展(Chrome / Edge)

Chrome 没有内置的 WebRTC 设置,因此需要安装扩展:

  • uBlock Origin —— 进入设置 → 隐私 → 勾选"阻止 WebRTC 泄漏本地 IP 地址"
  • WebRTC Leak Prevent(Chrome 网上应用店)—— 专用扩展,支持按策略控制
  • WebRTC Control —— 一键开启/关闭 WebRTC

这些扩展可拦截或限制 WebRTC 能够暴露的 IP 地址。

修复方案 4:使用 Chromium 标志(Chrome / Edge)

在 Chrome 或 Edge 中,将以下内容粘贴到地址栏:

chrome://flags/#disable-webrtc

找到 "WebRTC" 并将其设置为已禁用。这是一个隐藏标志 —— 目前有效,但可能在未来的浏览器版本中被移除。

修复方案 5:在 Opera 中禁用 WebRTC

  1. 进入设置(或按 Alt + P
  2. 点击高级 → 隐私与安全
  3. WebRTC 下,选择**"禁用非代理 UDP"**

修复方案 6:Safari

Safari 采用了更为保守的 WebRTC 实现,默认情况下不会在 ICE 候选地址中暴露本地 IP 地址。Safari 中的 WebRTC 泄漏较为罕见,但您仍然可以运行测试加以确认。

若要在 Safari 中完全禁用 WebRTC:

  1. 打开 Safari → 开发菜单(如果不可见,请在偏好设置 → 高级中启用)
  2. Safari 界面中没有直接的 WebRTC 开关;WebRTC 在操作系统层面受到限制

WebRTC 泄漏与 IPv6

一种常见的变体是 IPv6 WebRTC 泄漏。许多 ISP 现在分配 IPv6 地址,但较旧的 VPN 仅隧道 IPv4 流量。如果您的系统有活跃的 IPv6 地址,即使您的 IPv4 已被隐藏,WebRTC 也可能将其暴露。

检测方法:运行 WebRTC 泄漏测试,查看结果中是否出现 2001:2600: 或类似 IPv6 格式的地址。

修复 IPv6 泄漏:

Windows:

# 在所有适配器上禁用 IPv6
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Disable-NetAdapterBinding

macOS:

# 在 Wi-Fi 上禁用 IPv6(将 en0 替换为您的适配器名称)
networksetup -setv6off Wi-Fi

Linux:

# 添加到 /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

或者使用原生支持 IPv6 隧道的 VPN。


所有 VPN 都有这个问题吗?

不是 —— 但很多都有。以下是简要概览:

VPN 类型 WebRTC 泄漏风险
具有泄漏保护的高级 VPN 低(前提是已启用保护)
免费 VPN 或基于浏览器的 VPN 高 —— 大多数不阻止 WebRTC
没有浏览器扩展的 VPN 中 —— 取决于操作系统/浏览器配置
Tor Browser 低 —— 默认禁用 WebRTC

免费 VPN、浏览器扩展 VPN 和较旧的 VPN 客户端经常发生 WebRTC 泄漏,因为它们不通过隧道路由 STUN 流量。


WebRTC 泄漏在什么情况下真正有影响?

WebRTC 泄漏在以下情况下影响最大:

  • 地理限制流媒体: 尽管您使用了 VPN,服务仍能检测到您的真实位置
  • 隐私敏感的浏览活动: 新闻报道、法律研究、举报违规行为
  • 绕过 IP 封禁: 即使在 VPN 后面,您的真实 IP 仍然可见
  • 企业 VPN: 连接 VPN 的员工仍可能暴露其办公室网络 IP 段

对于隐私要求不高的日常浏览,WebRTC 泄漏不那么紧迫 —— 但如果您使用 VPN,就应该期望它真正隐藏您的 IP。


常见问题解答

WebRTC 泄漏危险吗? 这取决于您的威胁模型。如果您使用 VPN 纯粹是为了访问地区限制内容,并且不在乎您的 IP 被知晓,那么它没有实际影响。如果您使用 VPN 是为了保护隐私(隐藏真实身份或位置),那么 WebRTC 泄漏将使其失去意义 —— 网站可以看到您的真实 IP。

禁用 WebRTC 会影响网页性能吗? 只会影响专门使用 WebRTC 的网页应用 —— 视频/语音通话、点对点文件共享、屏幕共享。普通浏览、流媒体(Netflix、YouTube)以及所有基于服务器的通信均不受影响。

网站是否总能通过 WebRTC 检测到我的真实 IP? 只有当它们刻意运行 JavaScript 来查询 WebRTC ICE 候选地址时才能做到。大多数网站不会这样做 —— 这需要专门编写代码。但任何想要这样做的网站(或广告网络、追踪器)都可以悄悄地检测到。

我的 VPN 声称有泄漏保护,我还需要测试吗? 需要。VPN 的营销宣传不一定与实际实现相符。测试只需 30 秒,即可针对您特定的浏览器、操作系统和 VPN 组合给出明确答案。

VPN 断线保护(Kill Switch)能防止 WebRTC 泄漏吗? 不能。断线保护在 VPN 断开时切断您的网络连接,但它并不能阻止 WebRTC 在 VPN 活跃时查询本地网络接口。

这只是 VPN 的问题吗? 不是。Tor Browser 默认禁用 WebRTC 正是为了防止这个问题。如果您在没有使用 Tor Browser 的情况下使用 Tor(例如手动通过 Tor SOCKS 代理路由流量),您的浏览器 WebRTC 仍然可能泄漏您的真实 IP。


相关工具