🔍 30秒看懂 WebRTC 泄漏
WebRTC 是浏览器内置的实时通信协议,用于视频通话、屏幕共享等功能。但它有一个致命副作用:即使你连了 VPN,WebRTC 也可能通过 STUN 服务器获取并暴露你的真实 IP 地址。
- 风险:任何网站都可以通过一段 JavaScript 代码获取你的真实 IP
- 隐蔽性:比 DNS 泄漏 更难发现——VPN 的 DNS 泄漏检测工具检测不到 WebRTC 泄漏
- 影响:约 25% 的 VPN 用户存在 WebRTC 泄漏(2025 年 Mozilla 研究)
- 解决方案:在浏览器中禁用 WebRTC,或使用有 WebRTC 防护的 VPN 客户端
1. 什么是 WebRTC?
WebRTC(Web Real-Time Communication)是 HTML5 标准的一部分,允许浏览器在不安装插件的情况下进行实时音视频通信。
WebRTC 的常见用途:
- Google Meet / Zoom 网页版视频通话
- Discord 网页版语音
- 浏览器屏幕共享
- 在线会议工具(如 Whereby、Jitsi)
- P2P 文件传输
问题在于:WebRTC 为了建立 P2P 连接,需要知道你的真实 IP 地址。它会通过 STUN(Session Traversal Utilities for NAT)服务器获取你的公网 IP——这个过程绕过了 VPN 隧道。
💡 简单类比:VPN 是给你的网络流量套了一层"信封"(加密隧道),但 WebRTC 就像你在信封外面又贴了一张写着你真实地址的便签。网站看信封看不到你的地址,但可以直接看便签。
2. WebRTC 泄漏原理
正常情况(无 VPN)
你的浏览器 → STUN 服务器 → 返回公网 IP(如 114.114.x.x)
网站通过 JavaScript 读取 → 获取你的真实 IP
连了 VPN 但有 WebRTC 泄漏
VPN 隧道:你的设备 → VPN 服务器 → 网站(网站看到 VPN 的 IP)
但同时:
WebRTC → 直接向 STUN 服务器查询 → 返回你的真实 IP
网站通过 JavaScript 读取 → 绕过 VPN 获取真实 IP
为什么 VPN 防不住 WebRTC?
- WebRTC 不走 VPN 隧道:WebRTC 使用 UDP 协议直接与 STUN 服务器通信,部分 VPN 客户端不会拦截 WebRTC 的 UDP 流量
- 浏览器层面的问题:WebRTC 是浏览器功能,不是系统功能。VPN 在系统层面工作,但浏览器可能绕过系统代理
- ICE 候选机制:WebRTC 使用 ICE(Interactive Connectivity Establishment)框架收集所有可能的网络路径,包括本地 IP 和公网 IP,这个过程完全在浏览器内部完成
WebRTC 泄漏暴露的信息
| 信息类型 | 说明 |
|---|---|
| 公网 IP | 你的真实公网 IP 地址(最危险) |
| 本地 IP | 你的内网 IP(如 192.168.1.x) |
| ISP 信息 | 通过 IP 反查可获取你的运营商 |
| 地理位置 | 通过 IP 地理定位可获取你的城市级位置 |
3. 如何检测 WebRTC 泄漏
在线检测工具
| 工具 | 网址 | 特点 |
|---|---|---|
| BrowserLeaks | browserleaks.com/webrtc | 最全面,显示详细 ICE 候选 |
| ipleak.net | ipleak.net | 同时检测 DNS + WebRTC |
| diafygi/webrtc-ips | github.com/diafygi/webrtc-ips | 开源检测脚本 |
检测步骤
- 先不连 VPN,打开检测网站,记录你的真实 IP
- 连接 VPN,刷新检测网站
- 检查结果:
- ✅ 安全:只显示 VPN 的 IP,看不到真实 IP
- ❌ 泄漏:显示了你第1步记录的真实 IP
手动检测(Chrome 开发者工具)
- 打开任意网站 → F12 打开开发者工具
- 切换到 Console 标签
- 粘贴以下代码:
RTCPeerConnection.createRTCPeerConnection;
let pc = new RTCPeerConnection({iceServers: [{urls: 'stun:stun.l.google.com'}]});
pc.createDataChannel('');
pc.onicecandidate = e => {
if (e.candidate) console.log(e.candidate.candidate);
};
pc.createOffer().then(o => pc.setLocalDescription(o));
- 如果输出中包含你的真实 IP(而不是 VPN 的 IP),说明存在 WebRTC 泄漏
4. 各浏览器禁用 WebRTC 方法
Chrome / Edge / Brave(Chromium 内核)
Chromium 内核浏览器没有原生禁用 WebRTC 的选项,需要安装扩展:
推荐扩展:
| 扩展 | 说明 |
|---|---|
| WebRTC Control | 一键禁用/启用 WebRTC,最简单 |
| WebRTC Leak Prevent | 更细粒度的控制 |
| uBlock Origin | 设置中开启"阻止 WebRTC 泄漏" |
Chrome 隐藏设置(实验性):
- 地址栏输入
chrome://flags/#disable-webrtc - 找到 “WebRTC” 相关选项 → 设为 Disabled
- 重启浏览器
⚠️ 注意:禁用 WebRTC 后,Google Meet、Zoom 网页版等视频通话功能将无法使用。建议安装扩展后按需开关。
Firefox
Firefox 有原生设置可以禁用 WebRTC:
- 地址栏输入
about:config - 搜索
media.peerconnection.enabled - 双击设为 false(完全禁用 WebRTC)
- 或者更精细的设置:
media.peerconnection.ice.default_address_only= true(只暴露一个 IP,不泄漏全部)media.peerconnection.ice.no_host= true(不暴露本地 IP)
Firefox 的 WebRTC 防护是所有浏览器中最好的。如果你想最大化隐私,Firefox 是首选。
Safari
Safari 的 WebRTC 管理比较简单:
- Safari → 设置 → 开发者 → WebRTC
- 勾选 “不允许 WebRTC IP 泄漏”
- 如果没有"开发者"菜单:Safari → 设置 → 高级 → 勾选"在菜单栏中显示开发者菜单"
移动端浏览器
| 浏览器 | 禁用方法 |
|---|---|
| iOS Safari | 无法直接禁用。使用有 WebRTC 防护的 VPN App |
| Android Chrome | 安装 WebRTC Control 扩展(支持安卓版 Chrome) |
| Firefox Android | about:config → media.peerconnection.enabled = false |
| Brave(移动版) | 设置 → Brave 盾牌 → 阻止 WebRTC 泄漏 |
5. 主流 VPN 的 WebRTC 防护能力
| VPN | WebRTC 防护 | 说明 |
|---|---|---|
| ExpressVPN | ✅ 自动 | 客户端内置 WebRTC 防护,自动拦截 |
| NordVPN | ✅ 自动 | 客户端内置 WebRTC 防护 |
| Surfshark | ⚠️ 部分 | 桌面端有防护,移动端需手动配置 |
| Proton VPN | ✅ 自动 | 客户端内置 WebRTC 防护 |
| CyberGhost | ⚠️ 部分 | 需在设置中手动开启 |
| PIA | ⚠️ 部分 | 需在设置中手动开启 |
| Astrill | ❌ 有限 | 无内置防护,需在浏览器中禁用 |
💡 选择建议:ExpressVPN、NordVPN 和 Proton VPN 的 WebRTC 防护最完善——客户端自动拦截,不需要额外配置。使用其他 VPN 的用户建议在浏览器中安装 WebRTC Control 扩展。
6. WebRTC 泄漏 vs DNS 泄漏
| 维度 | WebRTC 泄漏 | DNS 泄漏 |
|---|---|---|
| 泄漏内容 | 真实 IP 地址 | DNS 查询记录 |
| 泄漏途径 | 浏览器 STUN 请求 | DNS 请求绕过 VPN 隧道 |
| 隐蔽性 | 高——常规 VPN 检测工具不检测 | 中——大部分 VPN 有 DNS 防护 |
| 影响 | 暴露真实位置和 ISP | 暴露你访问了哪些网站 |
| 防护难度 | 中——需浏览器层面防护 | 低——大部分 VPN 自动防护 |
| 检测方法 | 专用 WebRTC 检测工具 | VPN 自带检测或 ipleak.net |
💡 泄漏三件套:WebRTC 泄漏 + DNS 泄漏 + Kill Switch 缺失,是 VPN 用户面临的三大隐私风险。建议三项都检查一遍。
7. WebRTC 泄漏的真实风险
风险一:身份关联
即使你连了 VPN 隐藏了 IP,网站也可以通过 WebRTC 获取你的真实 IP,将你的 VPN IP 与真实 IP 关联起来。这意味着你在 VPN 下的所有活动都可以被追溯到你的真实身份。
风险二:地理位置暴露
通过 WebRTC 暴露的 IP 可以精确到城市级的地理位置。如果你声称自己在国外(如使用美国 VPN 节点),但 WebRTC 泄漏显示你在中国,网站可以判断你在使用 VPN。
风险三:P2P 暴露
使用 BT/P2P 下载时,如果 WebRTC 泄漏了真实 IP,版权方可以通过 WebRTC 获取你的 IP 并发起 DMCA 投诉。
实际风险评估
| 场景 | 风险等级 | 说明 |
|---|---|---|
| 日常浏览(看新闻/视频) | 🟡 中 | 广告商可关联身份 |
| 流媒体解锁 | 🟡 中 | 平台可检测 VPN 使用 |
| P2P 下载 | 🔴 高 | 版权方可获取真实 IP |
| 隐私敏感活动 | 🔴 高 | 身份可能被关联 |
| 普通社交/购物 | 🟢 低 | 影响较小 |
8. FAQ
Q:禁用 WebRTC 会影响什么?
禁用后,浏览器内的视频通话功能(Google Meet、Zoom 网页版、Discord 网页版等)将无法使用。你可以安装扩展按需开关——需要视频通话时临时启用,平时禁用。
Q:WebRTC 泄漏只在浏览器中发生吗?
是的。WebRTC 是浏览器技术,只影响浏览器内的活动。App(如手机上的 WhatsApp、微信)不使用 WebRTC,不受影响。
Q:无痕模式能防止 WebRTC 泄漏吗?
不能。无痕模式只是不保存浏览历史和 Cookie,WebRTC 泄漏与无痕模式无关。
Q:Tor 浏览器有 WebRTC 泄漏吗?
没有。Tor 浏览器默认禁用了 WebRTC,是最安全的浏览器选择。但 Tor 的速度较慢,不适合日常使用。
Q:如何一键检测所有泄漏?
推荐使用 ipleak.net,它可以同时检测:
- IP 地址泄漏
- DNS 泄漏
- WebRTC 泄漏
- IPv6 泄漏
最后更新:2026年8月4日 · 下次复查:2026年10月