返回概览 更多文章

WebRTC IP 泄露:它是什么,以及如何保护自己

加载中……

你通过 VPN 联网,跑了一次泄露测试,可你的真实 IP 地址却依然显示了出来。罪魁祸首通常是 WebRTC。它本是浏览器为视频和语音通话内置的功能,但只需几行 JavaScript,就能借它读取到那个本该被 VPN 隐藏起来的 IP 地址。

什么是 WebRTC?

WebRTC(Web Real-Time Communication,网页实时通信)是一项强大的开源技术,能让网页浏览器建立直接的点对点连接。借助它,无需任何额外插件或软件,就能在浏览器内直接实现语音通话、视频聊天、文件共享等实时通信功能。

包括 Chrome、Firefox、Edge 和 Safari 在内的大多数现代浏览器,都内置了 WebRTC 能力。

WebRTC 是如何暴露你的 IP 地址的?STUN 服务器扮演的角色

为了建立直接的点对点连接,你的浏览器需要发现自己的公网 IP 地址,并弄清楚它所处的 NAT(Network Address Translation,网络地址转换)类型。这正是 STUN(Session Traversal Utilities for NAT)服务器发挥关键作用的地方。

你的浏览器向 STUN 服务器发出请求。STUN 服务器随即检查这个请求,并告诉你的浏览器它看到请求来自哪个公网 IP 地址和端口。WebRTC 接着用这些信息,让其他对端(比如与你视频通话的人)能够把数据直接发送到你的浏览器。

隐私隐患就出在这里:任何网站都可以执行 JavaScript 代码,通过你的浏览器发起这些 STUN 请求。这意味着一个网站有可能获知你的真实 IP 地址。即便你正用 VPN 或代理为常规网页浏览掩盖 IP,WebRTC 请求也可能绕过这条 VPN 隧道发出,从而在不经意间暴露你真正的 IP 地址。

你的设备
真实 IP 203.0.113.5
常规流量
VPN 隧道
网站看到你的 VPN IP
WebRTC / STUN 请求
绕过隧道泄漏
网站看到你的 真实 IP
你的日常流量由 VPN 掩护,但 WebRTC 的 STUN 请求可能走另一条路径,仍然会把你的真实 IP 暴露给网站。

为什么这会成为隐私问题?

你的真实 IP 地址可以用来推断你大致的地理位置。对于那些依靠 VPN 或代理来保护自己在线身份和位置的人来说,一次 WebRTC IP 泄露实际上会绕过这些隐私措施,暴露出他们真实的 IP 地址。这就抵消了使用 VPN 的一大核心好处。

这个被暴露的 IP 地址随后可被用于各种用途,包括跨网站追踪用户、定向广告投放,乃至在更为恶意的场景下用来识别和定位某个人。

bscan.info leak test comparing Chrome (WebRTC leak detected) with Incogniton (WebRTC IP consistent)

我该如何防范 WebRTC IP 泄露?

1. 使用浏览器扩展

有许多浏览器扩展专门用来管理或拦截 WebRTC 请求。像 uBlock Origin 这样流行的广告拦截器就提供了拦截 WebRTC 的选项。诸如 “WebRTC Leak Prevent” 或 “WebRTC Control” 这类专用扩展,则能对 WebRTC 行为提供更直接的控制。一些 VPN 提供商的浏览器扩展也内置了 WebRTC 泄露防护。

缺点: 这类方法总体上有效,但不同扩展的防护力度参差不齐。有些可能没有定期更新以应对新的 WebRTC 泄露手法,或者无法覆盖所有类型的 WebRTC 请求。如果只依赖某个扩展,却不了解它的具体机制和局限,可能会带来一种虚假的安全感。

2. 调整浏览器设置(进阶)

Firefox: 你可以进入 about:config,搜索 media.peerconnection.enabled 这一项,并将其设为 false,以此禁用 WebRTC。

Chrome/Edge: 用来彻底禁用 WebRTC 的直接浏览器设置较为有限,且可能随浏览器版本而变化。虽然可能存在一些实验性标志(例如在 chrome://flags 中),但对于这些浏览器而言,如果你不想彻底关掉这项功能,依靠信誉良好的浏览器扩展通常是更可靠的做法。

禁用 WebRTC 的缺点: 彻底禁用 WebRTC 是防止 IP 泄露的有效办法。不过,你需要清楚它带来的明显弊端。

许多现代 Web 应用都依赖 WebRTC 来实现语音和视频通话、直播、屏幕共享以及互动游戏等功能。关闭 WebRTC 会让这些功能失效。

此外,有些网站可能会检测到 WebRTC 被禁用。这本身虽算不上隐私风险,但它可能成为一个指纹识别的切入点(让你的浏览器配置更加独特),而某些服务一旦察觉到异常的浏览器设置,可能会限制访问或呈现被改动过的内容。

3. 正确配置你的 VPN

选择一家明确提供 WebRTC 泄露防护的 VPN 提供商。许多优质 VPN 服务会把这种防护内置到其客户端应用中,或者提供清晰的说明,指导你如何配置浏览器或系统以防止此类泄露。请确保你的 VPN 软件保持最新,并且已启用任何 WebRTC 泄露防护功能。

缺点: 并非所有 VPN 都提供可靠的 WebRTC 泄露防护,或者这一防护可能默认并未开启。核实你的 VPN 具备哪些能力、并确保其配置正确,这一点至关重要。即便用的是一款不错的 VPN,浏览器或其他网络设置中的错误配置,或者使用了一种并不为所有流量建立隧道的 VPN 协议,仍可能导致泄露。在配置好 VPN 之后,请务必测试是否存在 WebRTC 泄露。

4. 使用注重隐私的浏览器

有些浏览器在设计时强化了隐私功能,其中就包括对 WebRTC 更细粒度的控制。例如,Incogniton 允许用户伪装 WebRTC 数据,提供一个与其代理或 VPN 设置相一致的公网 IP 地址,而非将其完全禁用。

这样既能在保护你真实 IP 地址的同时,又有助于维持网站的兼容性。其他注重隐私的浏览器可能提供类似的内置防护,或者让 WebRTC 设置的管理变得更为简便。

结语

WebRTC 是一项很有价值的技术,它增强了网页的通信能力。然而,它发现 IP 地址的能力却可能带来重大的隐私风险,对那些依赖 VPN 来保持匿名的人来说尤其如此。只要理解这些泄露是如何发生的,并善用浏览器扩展、调整浏览器设置、选择带有 WebRTC 防护的 VPN,或者使用像 Incogniton 这样注重隐私的浏览器,你就能有效守护自己真实的 IP 地址,维护你的在线隐私。

Incogniton 徽标

提升你的隐私保护

箭头