什么是 WebRTC?
WebRTC (Web Real-Time Communication) 是一种开源技术,可以直接在浏览器之间实现实时语音、视频和数据通信。Google Meet、Discord 和 Facebook Messenger 等许多 Web 服务都基于这项技术构建。
WebRTC 的显著特点是仅使用浏览器就能建立 P2P (点对点) 连接,无需安装任何插件或应用。然而,建立这种 P2P 连接的过程隐藏着隐私隐患。
WebRTC 泄漏的工作原理
当 WebRTC 建立 P2P 连接时,它使用名为 ICE (Interactive Connectivity Establishment) 的协议来收集通信候选 IP 地址。此过程中收集的信息包括:
- 本地 IP 地址 (私有 IP):192.168.x.x 或 10.x.x.x 等内部网络地址
- 公共 IP 地址:通过 STUN 服务器获取的外部 IP 地址
- IPv6 地址:分配给你设备的 IPv6 地址
核心问题是这种信息收集可以绕过 VPN 隧道。即使使用 VPN,WebRTC 也可能直接访问网络接口并获取你的真实 IP 地址。这与浏览器指纹密切相关,因为两种技术都可以揭示关于你设备的识别信息。
为什么即使使用 VPN 也会发生泄漏
VPN 通常通过操作系统网络栈隧道化所有流量。然而,WebRTC 在浏览器内运行,有时可以在 VPN 隧道之外发送 STUN 请求。
在以下场景中泄漏特别可能发生:
- VPN 客户端未正确路由 WebRTC 流量
- 启用了分割隧道且浏览器流量被配置为绕过 VPN
- IPv6 流量不在 VPN 覆盖范围内
当 WebRTC 泄漏发生时,你的真实 IP 地址,VPN 本应隐藏的,变得可被任何网站上的 JavaScript 访问。这是一个严重的风险,破坏了使用 VPN 的根本目的。如需了解浏览器如何暴露个人数据,可以参考 Web 隐私保护书籍。
如何检查 WebRTC 泄漏
IP 确认首页显示 WebRTC 本地 IP 检测结果。检查网络信息卡中的"WebRTC 本地 IP"字段。
如果在使用 VPN 时显示了私有 IP 地址 (如 192.168.x.x),则正在发生 WebRTC 泄漏。如果显示"已被浏览器阻止",则泄漏正在被防止。
你还可以检查 IP 确认安全评分中的"WebRTC IP 泄漏风险"项目来验证是否存在泄漏。
各浏览器的对策
Firefox
Firefox 允许你通过设置直接防止 WebRTC IP 泄漏。如需全面了解浏览器级别的隐私保护,浏览器安全指南是有用的参考。
- 在地址栏输入
about:config - 搜索
media.peerconnection.enabled - 将值设为
false
请注意,禁用此设置将导致依赖 WebRTC 的服务,如 Google Meet 和 Discord,无法工作。
Chrome / Edge
Chrome 和 Edge 无法仅通过浏览器设置完全禁用 WebRTC。请改用以下扩展:
- WebRTC Leak Prevent:阻止 WebRTC IP 地址泄漏
- uBlock Origin:包含内置的 WebRTC 泄漏防护功能,需要在设置中启用
Safari
Safari 设计为从 WebRTC ICE 候选中排除私有 IP 地址。虽然相对安全,但并非万无一失,使用 VPN 时建议进行验证。
Brave
Brave 内置了 WebRTC 泄漏防护。在"隐私和安全"设置中,你可以将"WebRTC IP 处理策略"设置为"禁用非代理 UDP"。
VPN 端的对策
许多 VPN 服务也提供 WebRTC 泄漏保护功能。
- 在 VPN 客户端设置中启用"WebRTC 泄漏保护"
- 使用防火墙功能阻止 WebRTC STUN 请求
- 启用 IPv6 泄漏保护以防止通过 IPv6 的 WebRTC 泄漏
关于选择 VPN 的指导,请参阅我们的 VPN 指南。关于 DNS 泄漏的更多信息,也请查看我们的 DNS 泄漏指南。使用 IP 确认验证你的 VPN 是否正常工作,确保没有泄漏损害你的隐私。