不仅仅是 IP 地址:WebRTC 泄漏是如何出卖你的真实位置的?
您是否遇到过这种情况:VPN 显示已连接到美国,IP 查询网站也显示美国,但打开流媒体网站时,依然提示“不可在该地区观看”。罪魁祸首可能不是 VPN,而是深埋在您浏览器里的 WebRTC。
什么是 WebRTC?它为何危险?
WebRTC (Web Real-Time Communication) 是谷歌推出的一项技术,旨在让浏览器无需安装插件就能进行视频通话(如 Google Meet, Discord 网页版)。
为了实现流畅的点对点 (P2P) 通话,WebRTC 需要知道您的真实物理 IP 地址,以便在 NAT(路由器)上打洞。这本是一个好功能,但对于隐私用户来说,这是一个灾难。
WebRTC 的 STUN 请求通常通过 UDP 协议发送。即使您开启了 VPN,默认情况下,现代浏览器(Chrome/Edge)有时会极其“智能”地绕过代理设置,直接向 STUN 服务器查询您的真实 IP。
原理解析:几行代码就能扒下你的伪装
黑客或追踪网站只需要一段简单的 JavaScript 代码,就能骗过浏览器,让其交出您的局域网 IP 和公网 IP。
以下是漏洞利用代码的核心片段(仅供研究):
// 创建一个 RTCPeerConnection 对象
const rtc = new RTCPeerConnection({
iceServers: [{urls: "stun:stun.l.google.com:19302"}]
});
// 监听 ICE 候选事件
rtc.onicecandidate = function(event) {
if (event.candidate) {
// 正则提取 IP 地址
const ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/;
const ip_addr = ip_regex.exec(event.candidate.candidate)[1];
console.warn("⚠️ 真实 IP 已泄漏: ", ip_addr);
// 此时,网站已经把这个 IP 发送回服务器了
}
};
rtc.createDataChannel(""); // 触发连接建立
当这段代码运行时,浏览器会尝试与 Google 的 STUN 服务器通信。这个请求返回的数据包中,包含了您最真实的 IP 地址——无论您挂了多少层 VPN。
现场演示:您的浏览器漏了吗?
我们制作了一个模拟检测器。如果下方显示的是红色警告,说明您的浏览器正在通过 WebRTC 泄露信息。
快连保护已开启
WebRTC 接口已屏蔽,真实 IP 隐身中
如何防御 WebRTC 泄漏?
方法一:浏览器插件(不推荐)
您可以安装类似 "WebRTC Leak Prevent" 的插件。但插件权限有限,且容易因浏览器更新而失效。
方法二:系统级防火墙阻断(推荐)
Project Aegis(神盾计划) 采取了更底层的防御策略。快连 加速器 客户端会在网络驱动层拦截所有非隧道内的 STUN/TURN 数据包。
开启快连客户端设置中的“强力隐私模式”,我们将强制浏览器所有的 WebRTC 流量都必须走加密隧道,或者直接丢弃。