什么是 WebRTC 泄漏?
WebRTC 让浏览器无需插件即可进行实时音视频和数据连接。为了建立连接,它会收集“ICE 候选地址”,即设备可被访问到的所有 IP,有时还会向 STUN 服务器询问你的公网地址。
网站只需几行 JavaScript 就能在后台触发这个过程。如果 STUN 请求绕过了 VPN 或代理,网站就能拿到你的真实公网 IP,即使普通网页流量显示的是 VPN 地址。
如何解读结果
以 .local 结尾的地址是现代浏览器用来隐藏内网地址的 mDNS 占位符,是无害的。192.168.x.x 这类私有地址本身也不危险。如果出现了与你当前浏览 IP 不同的公网地址,就是真正的泄漏。
如何防止 WebRTC 泄漏
使用带 WebRTC 泄漏保护的 VPN 客户端,或安装限制 WebRTC 只走代理接口的浏览器扩展。Firefox 可以在 about:config 中把 media.peerconnection.enabled 设为 false;Brave 和新版 Chrome 也可以在设置中限制 WebRTC 的 IP 处理策略。
常见问题
不用 VPN 时 WebRTC 会泄漏 IP 吗?
不用 VPN 时,WebRTC 暴露的就是所有网站本来就能看到的公网 IP,不存在额外泄漏。
禁用 WebRTC 会影响网站使用吗?
网页版视频会议等实时应用需要 WebRTC。限制 IP 处理策略是比较折中的做法。