WebRTC
约 4 分钟阅读
最后更新: 2026-02-14
什么是 WebRTC
WebRTC(Web Real-Time Communication)是一种 Web 标准技术,无需插件即可在浏览器之间实现实时音视频和数据通信。Google Meet、Discord、Facebook Messenger 等的视频通话功能都基于 WebRTC 构建。
为了提高通信效率,WebRTC 采用浏览器之间直接连接的 P2P(点对点)方式。为建立这种直接连接,需要通过 STUN/TURN 服务器将自己的 IP 地址通知对方,这就产生了隐私问题。
STUN/TURN 服务器的作用
建立 WebRTC P2P 连接首先需要确定自己在网络中的位置。这里使用 STUN 和 TURN 两种服务器。
stun.l.google.com:19302,许多 WebRTC 应用都在使用。从隐私角度来看,问题在于 STUN 服务器的查询可能绕过 VPN 隧道。在这种情况下,VPN 本应隐藏的真实 IP 地址会被发送到 STUN 服务器,并可通过 JavaScript 获取。
ICE Candidate 与 IP 泄露机制
WebRTC 使用 ICE(Interactive Connectivity Establishment)框架来建立连接路径。ICE 收集多个连接候选(ICE Candidate)并选择最优路由。
ICE Candidate 收集过程会生成三种类型的候选:
- Host Candidate:从设备网络接口直接获取的本地 IP 地址(
192.168.x.x或10.x.x.x)。即使在 VPN 连接期间,物理网卡的 IP 地址也可能被包含 - Server Reflexive Candidate (srflx):STUN 服务器返回的公网 IP 地址。如果 STUN 查询绕过了 VPN,VPN 外部的真实 IP 就会暴露
- Relay Candidate:TURN 服务器的地址。隐私风险较低
恶意网站只需创建 RTCPeerConnection 对象并启动 ICE Candidate 收集,无需实际进行通话,就能通过 JavaScript 获取这些 IP 地址。由于只需几行代码即可实现,它与 DNS 泄露并列为使用 VPN 时最常见的信息泄露途径。
各浏览器的应对方法
- Firefox:在地址栏输入
about:config,将media.peerconnection.enabled设为false可完全禁用 WebRTC。更精细的控制方式是将media.peerconnection.ice.default_address_only设为true,仅公开默认网络接口的 IP,防止其他接口(如 VPN 适配器)的 IP 泄露。 - Chrome:无法从设置页面禁用。需使用「WebRTC Leak Prevent」等扩展,将 ICE Candidate 收集策略限制为
disable_non_proxied_udp,阻止未经代理的 UDP 通信,防止真实 IP 泄露。 - Safari:在「设置」→「高级」→「WebRTC」中启用 ICE Candidate 限制选项。Safari 默认对 WebRTC IP 泄露采取了相对保守的设置。
- Brave:默认启用 WebRTC IP 泄露防护。可在「设置」→「隐私和安全」→「WebRTC IP 处理策略」中确认。
即使启用了 VPN 终止开关,也可能无法防止 WebRTC 泄露。浏览器端的防护措施必不可少。
WebRTC 的正当用途
虽然 WebRTC 的隐私风险备受关注,但它是一项无需插件即可实现实时通信的强大技术。了解其主要用途有助于判断禁用后的影响。
- 视频会议:Google Meet、Zoom(网页版)、Microsoft Teams(网页版)都使用 WebRTC。禁用后将无法通过浏览器参加会议
- 语音通话:Discord 网页版、Facebook Messenger 的通话功能等
- P2P 文件共享:WebTorrent 和浏览器间直接文件传输服务
- 实时游戏:基于浏览器的多人游戏中用于低延迟通信
- 直播:越来越多的超低延迟(亚秒级)直播采用 WebRTC
如果经常使用视频会议,与其完全禁用 WebRTC,不如使用 VPN 提供商的 WebRTC 泄露防护功能或浏览器的 ICE Candidate 限制设置,这样更为实际。
WebRTC 泄露的检测方法
您可以使用专门的测试网站轻松检查浏览器是否存在 WebRTC 泄露。在连接 VPN 的状态下运行测试,如果显示了 VPN 服务器 IP 以外的 IP 地址,则说明存在泄露。
检测步骤如下:
- 连接 VPN
- 访问 WebRTC 泄露测试网站
- 查看显示的 IP 地址
- 如果出现 VPN 服务器 IP 以外的地址,则存在泄露
定期结合浏览器指纹测试进行检查,有助于验证隐私设置的有效性。
常见误解
- 使用 VPN 就不会发生 WebRTC IP 泄露
- WebRTC 可以绕过 VPN 隧道直接访问网络接口,因此仅靠 VPN 无法防止泄露。需要在浏览器中禁用 WebRTC 或使用泄露防护扩展。
- 禁用 WebRTC 会导致无法上网
- 禁用 WebRTC 不会影响正常的网页浏览、视频观看和文件下载。受影响的仅限于浏览器内的视频通话和 P2P 文件共享等实时通信功能。