WebRTC进行IP探测

by Web全栈工程师 on 2019 年 12 月 04 日

WebRTC(Web Real-Time Communication)是一项允许浏览器进行实时语音、视频通话或 P2P 文件传输的技术。

当你访问一个网页时,如果该网页启用了 WebRTC 功能(现在很多网站都会默默启用,不仅仅是视频网站),浏览器为了建立最快的连接,会尝试绕过常规的服务器中转,直接寻找你的“真实地址”,那么利用 WebRTC 进行 IP 探测也已经是网络安全和广告追踪领域的“常规操作”了。

这就导致了隐私泄露:

  • 穿透 VPN 隧道: 虽然你的常规 HTTP 流量(看网页的流量)走了 VPN 隧道,变成了美国 IP;但是 WebRTC 为了优化速度,会通过 STUN/TURN 协议直接探测你的本地网卡信息。

  • 暴露真实 IP: 在这个探测过程中,浏览器会把你真实的 ISP 分配的 IP 地址(即国内运营商的 IP)报告给网站。

什么时候会触发? 你不一定非要打视频电话才会触发。只要网页中包含相关的 JavaScript 脚本(很多网站为了追踪用户真实位置会故意植入),浏览器就会在后台自动运行这个探测过程,Google 就是通过这个机制“看穿”了你的伪装。

WebRTC 是浏览器自带的功能,而不是网页服务商的插件。

  • 它是 Chrome、Firefox、Edge 等现代浏览器的核心组件(内置标准)。

  • 这意味着,无论你访问哪个网站,只要浏览器默认开启了这个功能,它就有能力获取你的真实网卡 IP。

  • 好消息是: 既然是浏览器的功能,我们就可以通过浏览器的设置或插件来控制它。

解决方法:使用 WebRTC Leak Prevent 扩展

由于 Chrome 浏览器默认没有提供“一键彻底关闭 WebRTC”的简单开关,最推荐的方法是安装专门的扩展程序来修补这个漏洞。

这里推荐使用 WebRTC Leak Prevent(Chrome/Edge)或类似的扩展。

第一步:安装扩展
  • Chrome / Edge 用户: 前往 Chrome 应用商店搜索 WebRTC Leak Prevent 并安装(通常图标是一个盾牌或类似标志)。

  • Firefox 用户: 火狐浏览器可以直接在地址栏输入 about:config,搜索 media.peerconnection.enabled 并将其设置为 false 即可彻底关闭,也可以去插件商店搜索同名插件。

第二步:关键配置(非常重要!)

安装好插件后,必须进行设置,否则可能无效。

  1. 点击浏览器右上角的插件图标,选择 Options(选项)

  2. 在设置界面中,找到 IP Handling Policy(IP 处理策略)

  3. 将其修改为:Disable non-proxied UDP (force proxy)

    • 中文意为:禁用非代理的 UDP(强制走代理)。

  4. 点击 Apply settings(应用设置)。

(注意:如果你选择“Disable non-proxied UDP”,WebRTC 流量将被强制通过你的 VPN 代理发送。如果你的 VPN 不支持 UDP 转发,这可能会导致网页上的即时通话功能无法使用,但这正是我们为了保护隐私所需要的。)

第三步:验证是否成功
  1. 连上你的美国 VPN。

  2. 访问 BrowserLeaks.com/webrtc 或 ipleak.net。

  3. 查看 WebRTC Leak 一栏。

  • 如果显示的 IP 地址是你的 VPN 服务器 IP(或者显示 N/A、空白),说明防护成功!

  • 如果依然显示你的中国电信/联通/移动 IP,请检查插件设置是否选对了 Disable non-proxied UDP

总结: 通过IP能判定你为国内用户,是因为浏览器的 WebRTC 机制越过 VPN 汇报了你的真实 IP。安装 WebRTC Leak Prevent 并配置为“强制代理(Disable non-proxied UDP)”是目前最有效的解决方案。

原创文章,转载请注明:转载自Web开发笔记 | WebRTC进行IP探测

本文链接地址:https://www.magentonotes.com/webrtc-leak-ip.html

Comments on this entry are closed.

Previous post:

Next post: