什麼是 WebRTC 外洩?
為了接通通話,WebRTC 會收集所有聯絡得到你的位址:網路卡上的區域網路位址,以及 STUN 伺服器看到的公開位址。網頁幾行腳本就讀得到,不需要任何權限。如果 VPN 或代理只轉送網頁請求,STUN 請求就會從你自己的線路出去,網頁就能拿到 VPN 背後的真實 IP。
瀏覽器裡的視訊通話靠的是 WebRTC,任何網頁都能直接啟動它,不需要你同意。它會透過 UDP 去問 STUN 伺服器(專門告訴你「外面看到的你是哪個位址」的伺服器),而很多 VPN 和代理不轉送 UDP。下面是 WebRTC 暴露出來的位址,以及它和網站看到的位址的比對。
你正在 的內建瀏覽器裡,下面的結果是這個內建瀏覽器的。想測你平常用的瀏覽器,請複製連結,到 Safari 或 Chrome 開啟。你正在某個 App 的內建瀏覽器裡,下面的結果是這個內建瀏覽器的。想測你平常用的瀏覽器,請複製連結,到 Safari 或 Chrome 開啟。你正在微信裡開啟,下面的結果是微信內建瀏覽器的。想測你平常用的瀏覽器,請點右上角 ··· 選「在瀏覽器開啟」。
口口口口口口口口口口口,現在人在口口口口口口口口口口口口口口口口口口口口。你說口口口口口口口,電腦的時區是口口口口口口口,時鐘用口口口口口口。
口口口口口口口口口口口口口口口口口口口口口口
你用的是口口口口口口口口口口,瀏覽器是口口口口口口口口口口口口,螢幕口口口口口口口口口口口,顯示卡是口口口口口:口口口口口口口口口口口口口口口口口口口口口口口口口口。
你透過口口口口口口口口上網,口口口口口口口口,口口口口口口口口口口口口口口口口口;幫你把網址換成 IP 位址的 DNS 伺服器在口口口口口。口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口。
你喜歡口口口口口,口口口口口口口口口口口口,口口口口口口口口口口口口口口。口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口。裝的字型透露了一點:口口口口口口。至於年齡,口口口口口口口口口口口口口口。
在網站眼裡,這是口口口口口口口口口口口口口口口口口口口口口口口口口口。口口口口口口口口口口口口。你在口口口口口口口口口口口口口打開了這個頁面,口口口口口,口口口口口口口口口口口。
放在人群裡,口口口口口口口口口口口口口口口口口口口口口口口。
位元越多越罕見:每多 1 位元,和你一樣的人就少一半。各項之間並不獨立(例如 4K 螢幕和高階顯示卡常一起出現),所以整個指紋按它自己的真實次數計算,不是把各項乘起來。
為了告訴你有多少人和你一樣,本站會累計匿名計數:不存 IP,不存完整指紋,也沒有單次造訪的紀錄。 ·
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 ClientHelloprobe.zs.al · TCP SYNprobe.zs.al · JA4probe.zs.al · HTTP/2 SETTINGSprobe.zs.al · HTTP/3 · QUIC JA4Date.now()RTCPeerConnection · STUNWebRTC host candidateIPv6 EUI-64 (ff:fe)1.1.1.1 · /cdn-cgi/tracechatgpt.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.NumberFormatIntl.supportedValuesOfnavigator.keyboardspeechSynthesisError.messageJS feature probesFunction.prototype.toString · iframeCSS.supportscanvas text antialiasingcanvas.toDataURLWebGL getParameterOfflineAudioContextMath.* → SHA-256emoji measureTextfonts → SHA-256getClientRects · RangeSVG getBBox · getComputedTextLengthmeasureText actualBoundingBoxWebGL readPixelswindow · HTMLElement · CSS keysperformance.now() resolutionrecursion depthSHA-256screen · cores · GPU · fonts → SHA-256HTTP cache · ETag / If-None-Matchcanvas × 2navigator.brave · noise · liesuserAgentDatauserAgentData.brands…architecture · bitnessscreen · devicePixelRatiorequestAnimationFramescreen.isExtended · screenXinnerWidth · availHeightoffsetWidth − clientWidthWebGL RENDERERnavigator.gpu adapter.infoGPUAdapter limits · featuresWebGL2 · MAX_TEXTURE_SIZEhardwareConcurrencynavigator.deviceMemoryperformance.memorymaxTouchPoints · pointernavigator.getBatterygeolocation (on request)devicemotion (on request)navigator.connectionenumerateDevicesAudioContext.sampleRatePublicKeyCredentialbluetooth.getAvailabilityMediaSource.isTypeSupportedRTCRtpSender.getCapabilitiesMediaRecorder.isTypeSupportedmediaCapabilities.decodingInforequestMediaKeySystemAccessstorage.estimateprefers-color-schemeprefers-reduced-motioncolor-gamut · dynamic-rangeprefers-contrast · forced-colorsfont-size: medium · AccentColordisplay-modedoNotTrack · GPCnavigator.cookieEnabledpermissions.queryusb · serial · hid · IdleDetector …pdfViewerEnablednavigator.webdriverWorker · navigatorbait element7 tracker scripts (on request)window.ethereum · DOM markschrome-extension:// fileshistory.lengthlocalStorage · IndexedDB · Cache · window.namecanvas 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 位址比對。