不仅仅是 IP 地址:WebRTC 泄漏是如何出卖你的真实位置的?

您是否遇到过这种情况:VPN 显示已连接到美国,IP 查询网站也显示美国,但打开流媒体网站时,依然提示“不可在该地区观看”。罪魁祸首可能不是 VPN,而是深埋在您浏览器里的 WebRTC

什么是 WebRTC?它为何危险?

WebRTC (Web Real-Time Communication) 是谷歌推出的一项技术,旨在让浏览器无需安装插件就能进行视频通话(如 Google Meet, Discord 网页版)。

为了实现流畅的点对点 (P2P) 通话,WebRTC 需要知道您的真实物理 IP 地址,以便在 NAT(路由器)上打洞。这本是一个好功能,但对于隐私用户来说,这是一个灾难。

隧道逃逸 (Tunnel Bypass):
WebRTC 的 STUN 请求通常通过 UDP 协议发送。即使您开启了 VPN,默认情况下,现代浏览器(Chrome/Edge)有时会极其“智能”地绕过代理设置,直接向 STUN 服务器查询您的真实 IP。

原理解析:几行代码就能扒下你的伪装

黑客或追踪网站只需要一段简单的 JavaScript 代码,就能骗过浏览器,让其交出您的局域网 IP 和公网 IP。

以下是漏洞利用代码的核心片段(仅供研究):

JavaScript POC Code
// 创建一个 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 隐身中

检测到的公网 IP: 204.11.x.x (VPN)
WebRTC 状态: Disabled / Proxied
注意:只有使用快连客户端并开启“WebRTC 阻断”时才能看到此结果。

如何防御 WebRTC 泄漏?

方法一:浏览器插件(不推荐)

您可以安装类似 "WebRTC Leak Prevent" 的插件。但插件权限有限,且容易因浏览器更新而失效。

方法二:系统级防火墙阻断(推荐)

Project Aegis(神盾计划) 采取了更底层的防御策略。快连 加速器 客户端会在网络驱动层拦截所有非隧道内的 STUN/TURN 数据包。

STUN 请求 (UDP)
快连防火墙
真实网络
图解:直接在网卡层丢弃泄露请求

开启快连客户端设置中的“强力隐私模式”,我们将强制浏览器所有的 WebRTC 流量都必须走加密隧道,或者直接丢弃。