WebRTC泄露测试
WebRTC允许浏览器发现自己的网络地址,以便建立通话和视频聊天——而任何网站都可以悄无声息地触发这一发现过程。本测试会精确显示您的浏览器暴露了哪些地址,以及其中是否有一个是您在VPN或代理之后的真实地址。
您的浏览器针对我们自己的STUN服务器收集ICE候选地址;其中的每一个公网地址都会与网站通过HTTP看到的地址进行比较。
检测中
| 类型 | 地址 | 端口 | 协议 | 地址类型 | 范围 |
|---|---|---|---|---|---|
| srflx | 203.0.113.5 | 51234 | udp | IPv4 | public |
针对您浏览器的修复方法
Chrome
- Chrome的设置中没有开关。请安装一个能设置WebRTC IP处理策略的扩展——Google自己的“WebRTC Network Limiter”提供了这一选项——并选择“禁用非代理UDP”(在那里的描述是:使用您的代理服务器,强制UDP经过代理或回退到TCP)。
- 也可以使用您VPN服务商提供的、带WebRTC保护功能的浏览器扩展;在受管理的设备上,可使用WebRtcIPHandling策略(值为disable_non_proxied_udp;Chrome 135+还接受通过WebRtcIPHandlingUrl按网站设置的规则)。
- 本地地址已经被隐藏:Chrome 74+用mDNS名称替代它们。Android和iOS上的Chrome没有对应的设置;请依靠VPN应用的断网保护。
- 重新运行本测试。
Firefox
- 打开about:config并接受警告。
- 把media.peerconnection.ice.default_address_only设为true,这样只会使用默认路由(连接VPN时即VPN);把media.peerconnection.ice.no_host设为true以去除本地地址。
- 如果您通过代理上网,还要把media.peerconnection.ice.proxy_only_if_behind_proxy设为true,这样WebRTC要么经过代理,要么根本不工作。
- 要彻底关闭WebRTC,把media.peerconnection.enabled设为false(浏览器通话将无法使用)。Firefox已经用mDNS名称隐藏了本地地址。
- 重新运行本测试。
Safari
- Safari没有WebRTC开关。它会在没有任何权限提示的情况下提供STUN(server-reflexive)候选地址,只有在网站获得摄像头或麦克风权限之后才会以mDNS名称的形式暴露本地候选地址。
- 因此,这里报告的泄露意味着UDP离开了VPN隧道:请使用带断网保护和IPv6支持的VPN,并且不要用代理来追求匿名(代理从不承载UDP)。
- 在iPhone和iPad上,锁定模式(设置 › 隐私与安全性)会完全禁用WebRTC,同样能阻止泄露。
- 不要启用“开发 › WebRTC › 停用ICE候选者限制”:那是一个开发者选项,会暴露更多,而不是更少。
- 重新运行本测试。
Edge
- Edge同样没有面向用户的开关。请使用能把WebRTC IP处理策略设为“禁用非代理UDP”的扩展,或您VPN服务商的扩展。
- 在受管理的设备上,请设置WebRtcLocalhostIpHandling策略,或在Edge 135+中设置WebRtcIPHandlingUrl,对模式*使用disable_non_proxied_udp处理方式。
- Android和iOS上的Edge无法更改此项;请使用VPN应用的泄露保护。
- 重新运行本测试。
Brave
- 打开“设置 › 隐私和安全”(brave://settings/privacy)。
- 在“WebRTC IP处理策略”下选择“禁用非代理UDP”。“仅默认公共接口”也能在保留UDP的同时防止暴露本地地址。
- 开启指纹保护的Brave Shields已经应用了非代理UDP策略;Android版Brave在“设置 › 隐私和安全”下有同样的选项。
- 重新运行本测试。
其他浏览器
- 基于Chromium的浏览器(Opera、Vivaldi、三星浏览器)接受与Chrome相同的扩展和WebRtcIPHandling策略。
- 如果没有相关设置,解决办法就是VPN应用的断网保护或“阻止WebRTC”选项。
- 重新运行本测试。
更改设置后,请再次运行测试:结果应显示为“无泄露”或“已阻止”。
运行WebRTC泄露测试
测试在您的浏览器中运行。它向我们自己的STUN服务器(绝不是第三方的)发起一个WebRTC连接,收集浏览器生成的ICE候选地址,并把其中的每一个公网地址与网站通过HTTP看到的地址进行比较。整个过程不到一秒;候选地址中的任何内容都不会发送到我们的服务器。
您的WebRTC IP地址
每一行候选地址显示地址本身、类型和范围。只有公网地址会影响判定;内网和mDNS条目最多只会暴露您的网络结构,绝不会暴露您的身份。
通过STUN获取的公网IP
srflx(server-reflexive)候选地址是我们的STUN服务器看到您的UDP数据包所来自的地址。VPN正常工作时,它等于您的VPN地址。如果不同,说明UDP在隧道之外离开了您的设备,真实地址已经暴露——这就是泄露。
本地IP / mDNS候选地址
host候选地址是您本地接口的地址。当前版本的Chrome、Edge、Firefox和Safari会用一个随机的….local mDNS名称来替代它们,让网站无法读取您的局域网地址;旧版浏览器和某些设置仍会显示192.168.x.x形式的地址,这会暴露您家庭网络的结构,但不会暴露您的公网身份。
什么是WebRTC泄露?
VPN或代理会拦截您经由它发送的流量;而WebRTC会直接向操作系统询问到STUN服务器的最佳路径,操作系统可能会通过物理接口来应答。代理根本不承载UDP流量,所以对代理用户而言,任何公网STUN结果从定义上就是在代理之外产生的。结果就是:当浏览器的地址栏、Cookie和其他一切都显示着VPN时,网站却得知了您的真实公网地址。指南什么是WebRTC解释了这个协议。
如何阻止WebRTC泄露
您可以阻止WebRTC使用未经隧道的接口,或者彻底禁用它。禁用会导致浏览器中的视频通话无法使用,所以优先选择限制性的选项。
Chrome和Edge
Chrome没有内置开关。请安装一个能把WebRTC IP处理策略设为禁用非代理UDP(Chrome扩展API所暴露的策略)的扩展,或者使用您VPN服务商提供的、带WebRTC保护功能的扩展。企业管理员可以集中设置WebRtcIPHandling策略。
Firefox
打开about:config。把media.peerconnection.ice.default_address_only设为true,让WebRTC只使用默认路由(连接VPN时即VPN);把media.peerconnection.ice.no_host设为true以隐藏本地地址。要彻底禁用WebRTC,把media.peerconnection.enabled设为false。
Safari
Safari用mDNS隐藏本地地址,并且只有在页面真正建立通话或数据通道时才收集STUN候选地址。它没有面向用户的开关;在iOS上,“锁定模式”会完全阻止WebRTC。如果本测试在Safari中报告泄露,解决办法在于VPN自身对IPv6/UDP的处理,而不是浏览器设置。
Brave
设置 › 隐私和安全 › WebRTC IP处理策略:选择禁用非代理UDP。Brave Shields已经阻止了最常见的指纹识别用途。
扩展程序
阻止WebRTC的扩展,其原理是设置同样的IP处理策略;它们做不到浏览器所不允许的事。请确认扩展不只是对本测试隐藏了结果而泄露仍在继续:安装后重新运行测试,确认状态是已阻止或无泄露,而不仅仅是一份空列表。
常见问题
如何禁用WebRTC?
Firefox:在about:config中把media.peerconnection.enabled设为false。Chrome、Edge和Brave:把WebRTC IP处理策略设为禁用非代理UDP(Brave在其设置中,Chrome/Edge通过扩展或企业策略)。Safari没有开关;iOS的锁定模式会禁用它。重新运行本测试以确认。
WebRTC有安全风险吗?
WebRTC本身是安全的——媒体和数据都经过加密。隐私问题在于地址发现:网页无需任何权限提示就能得知您的公网地址,有时还有本地地址;这主要在您依赖VPN或代理来隐藏地址时才构成问题。
阻止WebRTC好吗?
如果您使用VPN或代理,而本测试显示存在泄露,那么限制WebRTC是正确的做法。彻底阻止它会让基于浏览器的通话和一些会议网站无法使用;禁用非代理UDP策略能让通话继续经由隧道进行,是更好的默认选择。
检测到WebRTC IP泄露意味着什么?
WebRTC暴露的地址对网站是可见的——网站可以记录它、定位它,并把它与通过HTTP看到的地址关联起来。我们的测试不会把任何内容“发送”到任何地方;泄露只存在于您的浏览器和那些选择收集它的网站之间。请采用上述修复方法之一,然后重新测试。
WebRTC扩展是做什么的?
WebRTC扩展会设置浏览器的IP处理策略,让候选地址只通过默认(隧道)路由收集,或者完全不收集。有些扩展还会剔除本地地址。它们无法加密或转发流量;那是VPN的工作。
什么是WebRTC Shield?
“WebRTC Shield”以及类似的名称被多款扩展和VPN应用用来称呼应用上述限制策略的功能。无论它叫什么,请通过重新运行本测试来确认它是否有效:状态应显示为无泄露或已阻止。
ICE候选地址:您的浏览器对stun.checkmyip.com(我们自己的服务器,UDP和TCP,IPv4和IPv6);HTTP地址:probe.checkmyip.com。比较在您的浏览器中进行;候选地址绝不会发送给我们。