什么是 WebRTC 泄露?
WebRTC 让浏览器之间可以直接建立实时的音频、视频和数据连接,网络通话和屏幕共享都依赖它。为了找到直连路径,浏览器会收集“ICE 候选地址”,也就是可以访问到它的 IP 地址。它还会向公共的 STUN 服务器询问自己看起来来自哪个公网 IP 地址。任何网页都可以用 JavaScript 触发这一过程而无需征求许可,所以即使您的正常流量经过的 VPN 或代理没有处理 WebRTC,网页也能获知您的真实公网 IP 地址。这就是 WebRTC 泄露。
本测试的原理
- 您的浏览器创建一个 WebRTC 连接,并使用 Google 的公共 STUN 服务器收集候选地址。
- 我们提取发现的每个 IP 地址,并把其中的公网地址与我们的服务器在您正常网页流量中看到的 IP 地址进行比较。
- 如果 WebRTC 暴露的公网 IP 地址与网站看到的不同,说明您的真实 IP 正在泄露。
现代浏览器会把您的本地 IP 地址隐藏在随机的 .local 名称(mDNS)之后,这不算泄露。一切都在您的浏览器中运行;候选地址不会发送到我们的服务器。
如何修复 WebRTC 泄露
- 使用带有 WebRTC 泄露保护的 VPN 应用,或者在系统层面让所有流量都经过 VPN,而不是只用浏览器代理扩展。
- Firefox:打开
about:config,把media.peerconnection.enabled设置为false(这会禁用网络通话)。 - Chrome、Edge 和 Brave:使用限制 WebRTC 的扩展;在 Brave 中,可将 WebRTC IP 处理政策设为“禁用无代理的 UDP”。
- Safari:默认不会暴露本地 IP;请保持更新。
另外也请检查 IPv6 泄露,并阅读DNS 与 WebRTC 泄露详解。
常见问题
结果中出现 192.168.1.20 这样的本地 IP 有问题吗?
它本身透露的信息很少,但与其他数据结合后,有助于识别您的浏览器指纹。现在大多数浏览器会用 mDNS 名称替换它。
无痕模式能防止 WebRTC 泄露吗?
不能。隐私浏览不会改变 WebRTC 收集地址的方式。
更新于