配好代理,打开一个泄漏检测页,HTTP 地址看起来没问题,WebRTC 那一行却显示了别的东西:你家里的 IP、一个从没见过的 IPv6 地址,或者一串以 .local 结尾的名字。先别急着改设置。这三种结果对应三种不同的情况,其中只有一种才是真正的泄漏。
WebRTC 泄漏检测到底在测什么
网站通常从加载页面的那条连接得知你的地址,这就是 HTTP IP,也是代理和 VPN 本来就要改掉的那个地址。
WebRTC 走的是另一条路。为了建立点对点通话,浏览器会收集「ICE 候选地址」,也就是所有可能联系到你的地址:它向操作系统询问本机网卡,再向互联网上的 STUN 服务器询问「你看到我是从哪个地址来的」。泄漏检测页做的事很简单:在后台创建一个连接,把这些候选地址收集起来,和 HTTP IP 并排打印。
| 候选类型 | 来源 | 你看到的样子 |
|---|---|---|
| 本机(host) | 你的网卡 | 局域网私有地址;Chrome 里则是 3f1e….local 这样的 mDNS 名字 |
| 反射(srflx) | STUN 服务器眼中的你 | 从外部看到的公网 IP,走 UDP |
| 中继(relay) | TURN 服务器 | 中继服务器的地址,只有网站提供 TURN 时才出现 |
真正需要比较的是 HTTP IP 和反射候选地址。两者都是公网地址,都会被网站记录,也理应一致。
WebRTC IP 与 HTTP IP 不一致的三种原因
一、代理只转发 TCP,WebRTC 用的是 UDP
HTTP/HTTPS 代理只处理 TCP 连接,而 STUN 请求走 UDP,根本不会经过代理。它从你的真实网络直接出去,STUN 服务器也就如实报告你的真实公网地址。这就是经典的 WebRTC 泄漏:网站日志里是代理 IP,WebRTC 候选里是你运营商分配的 IP,两个地址被放在了一起。
二、IPv6 和 IPv4 走了两条路
很多家庭和办公网络同时有 IPv4 和 IPv6。如果代理或 VPN 只接管 IPv4,浏览器仍会通过 IPv6 收集到一个候选地址,而那就是没被遮住的真实地址。特征很明显:HTTP IP 是点分的 IPv4,WebRTC IP 是一长串十六进制。
三、检测页显示的是本机地址,不是公网地址
192.168.1.24 这类地址,或者以 .local 结尾的名字,都是本机候选。Chrome 从 2019 年起就用 mDNS 名字把真实局域网地址藏了起来,.local 条目不会告诉网站你在哪里。有些检测页仍会把它标红,但它不是泄漏,也不需要处理。
地址不同只说明两条路径离开你电脑的方式不同。该用哪种办法,取决于你遇到的是哪一种情况,所以先判断情况。
正确的检测方法
- 关掉代理测一次,记下 HTTP IP 和反射候选地址,两者应该完全相同。这是基准。
- 打开代理,在同一个浏览器里再测一次,只比较公网候选地址。
- WebRTC 地址是 IPv6 而 HTTP 是 IPv4,就是第二种情况;是私有地址或
.local,是第三种;其余都是第一种。 - 在你实际工作的网络上重复一遍。咖啡馆 Wi-Fi、手机热点和办公室局域网的表现各不相同。
检测你自己的 WebRTC 结果
实验室会把你的 HTTP IP 和 WebRTC 候选地址并排显示,并解释任何不一致。数据不会离开你的浏览器。
三种情况各自怎么解决
情况一:禁止不经代理的 UDP
Chrome 自带一个开关,叫 WebRTC IP 处理策略。设为「禁用非代理 UDP」后,浏览器只使用经过代理的候选地址,对多数网站来说泄漏就此消失,WebRTC 也会悄悄停止工作。可以通过扩展或企业策略设置。支持 UDP 的 SOCKS5 代理是另一条路,但浏览器不会自动用它来发 STUN 请求。
情况二:让 IPv6 和 IPv4 同等对待
要么在通过代理工作时关闭本机 IPv6,要么换一个同时承载 IPv6 的代理。改完再测一次:IPv6 候选地址消失,就是你要的确认。
情况三:什么都不用做
.local 名字说明浏览器在正常工作,不要动它。
为什么「直接关掉 WebRTC」不是完整答案
彻底禁用 WebRTC 能堵住泄漏,但也让你的浏览器变得不寻常。每一个原版 Chrome 都有 RTCPeerConnection,一个页面发现它不存在,就已经从你身上学到了东西;而任何用 WebRTC 做通话或屏幕共享的网站都会失效。更干净的目标是:WebRTC 正常可用,并且报告的公网地址与 HTTP 一致。
多账号运营时这意味着什么
一个账号泄漏是麻烦,多个账号泄漏是危险。五个环境各自挂着代理,却都通过 WebRTC 泄漏同一个家庭 IP,平台风控看到的就是五个账号、五个国家、一个共同地址。这种关联比任何 Cookie 都强,而且清什么都清不掉。
所以要检查的不是「代理生效了没有」,而是「这个环境出去的每一条路径是否一致」。公网 WebRTC 候选、HTTP IP、时区和语言,应该描述同一个地方。
Mango Browser 怎么处理 WebRTC
Mango 的每个环境都有独立的 WebRTC 设置,五种模式:关闭、自动、手动、真实、禁用 UDP。默认是自动:把公网候选地址替换为该环境所绑定代理的出口 IP,WebRTC 照常可用,并且与 HTTP 地址一致,不需要装扩展或配置策略。
代理同样按环境绑定,支持 HTTP、SOCKS5 和住宅代理;时区、语言和地理位置可以自动跟随出口 IP。在 Mango 环境里打开实验室检测,WebRTC 一行和 IP 一行显示的是同一个地址,其他检测站看到的也会是同样的结果。