什么是 WebRTC 泄漏?
为了建立通话,WebRTC 会收集所有能联系到你的地址:网卡上的局域网地址,以及 STUN 服务器看到的公网地址。网页几行脚本就能读到,不需要任何权限。如果 VPN 或代理只转发网页请求,STUN 请求就会走你自己的线路,网页就能拿到 VPN 背后的真实 IP。
浏览器里的视频通话靠 WebRTC,任何网页都能直接启动它,不用你同意。它会通过 UDP 问 STUN 服务器你从哪个地址来,而很多 VPN 和代理不转发 UDP。下面是 WebRTC 暴露的地址,和网站看到的地址对比。
79 个嗅探器 · 不弹任何授权
你多半是人,眼下人在。你平时说,电脑的时区是,钟用。
你手上这台是,开的是,屏幕,显卡是,。
你经上网,;替你查网址的 DNS 在。。
你习惯用,。。装的字体透露出:。至于年龄,。
CF-Connecting-IPrequest.cf.cityrequest.cf.latituderequest.cf.asOrganizationedns.ip-api.comrequest.cf.timezoneDNS PTRrequest.cf.colorequest.cf.tlsVersion/cdn-cgi/trace · kex, sni/cdn-cgi/trace · warpTLS ClientHelloDate.now()RTCPeerConnection · STUNWebRTC host candidatemyip.ipip.netapi.ip.sbchatgpt.com/cdn-cgi/traceclaude.ai/cdn-cgi/tracewww.cloudflare.com/cdn-cgi/traceCloudflare Radar · IPv4 / IPv6User-AgentAccept-LanguageSec-CH-UASec-CH-UA-PlatformAccept-EncodingDNT · Sec-GPCReferer · document.referrernavigator.languagesIntl.DateTimeFormatIntl …timeZoneIntl …hourCycleIntl.Locale weekInfoIntl.NumberFormatnavigator.keyboardspeechSynthesisError.messagecanvas.toDataURLWebGL getParameterOfflineAudioContextfonts → SHA-256SHA-256canvas × 2userAgentDatauserAgentData.brands…architecture · bitnessscreen · devicePixelRatiorequestAnimationFramescreen.isExtended · screenXinnerWidth · availHeightWebGL RENDERERnavigator.gpu adapter.infoWebGL2 · MAX_TEXTURE_SIZEhardwareConcurrencynavigator.deviceMemorymaxTouchPoints · pointernavigator.getBatterynavigator.connectionenumerateDevicesAudioContext.sampleRatePublicKeyCredentialbluetooth.getAvailabilityMediaSource.isTypeSupportedrequestMediaKeySystemAccessstorage.estimateprefers-color-schemeprefers-reduced-motioncolor-gamut · dynamic-rangeprefers-contrast · forced-colorsdisplay-modedoNotTrack · GPCnavigator.cookieEnabledpermissions.querypdfViewerEnablednavigator.webdriverbait elementwindow.ethereum · DOM markshistory.lengthcanvas measureText为了建立通话,WebRTC 会收集所有能联系到你的地址:网卡上的局域网地址,以及 STUN 服务器看到的公网地址。网页几行脚本就能读到,不需要任何权限。如果 VPN 或代理只转发网页请求,STUN 请求就会走你自己的线路,网页就能拿到 VPN 背后的真实 IP。
页面向 Cloudflare 和 Google 的 STUN 服务器发起 WebRTC 连接,列出它们报告的地址(srflx 候选),再和本站、你的其他出口以及 IPv6 测试看到的地址比较。哪个都对不上的地址,就是泄漏。局域网地址来自 host 候选。所有数据不存储、不上传。
代理客户端(Clash、V2Ray 等):打开 TUN 模式,让 UDP 也走代理。Chrome 和 Edge:装 WebRTC Network Limiter 扩展,或在 uBlock Origin 里勾选「防止 WebRTC 泄露本地 IP 地址」。Brave:设置 → 隐私 → WebRTC IP 处理策略 → 禁用非代理 UDP。Firefox:在 about:config 把 media.peerconnection.ice.default_address_only 设为 true,或把 media.peerconnection.enabled 设为 false 彻底关闭。改完再测一次。
以 .local 结尾的名字是浏览器把局域网地址藏起来了(mDNS),这正是你想要的。真实的局域网地址(比如 192.168.1.5)不会暴露你在哪,但会让你的指纹更独特。和 IPv4 出口不同的 IPv6 地址,只有不是你的 IPv6 出口时才算泄漏:检测会拿它和网站看到的 IPv6 地址比对。