DNS 洩漏與 WebRTC 洩漏:原理、自查與修復
cdnping · 2026-10-17
代理接管的是“連線”,但瀏覽器在建立連線之前和之外,還會做兩件容易被忽略的事:查詢域名,以及為實時通訊探測自己的公網地址。洩漏就發生在這兩處。
DNS 洩漏
訪問 example.com 之前,系統要先問 DNS 伺服器它的 IP。如果這一步發給了本地運營商的 DNS,那麼:
- 運營商能看到你訪問了哪些域名;
- 網站可以透過隨機子域名的方式,看到替你解析的 DNS 伺服器在哪個國家,與出口 IP 對比。
如何自查:cdnping IP 檢測會讓瀏覽器解析幾個隨機子域名,再查詢是哪些 DNS 伺服器完成了解析。如果解析器所在國與出口 IP 所在國不同,就存在洩漏。
修復方向:在代理客戶端中開啟“遠端 DNS”或 fake-ip 模式,讓域名交給代理伺服器解析;或在瀏覽器中啟用 DNS over HTTPS,並確保 DoH 流量也走代理。
WebRTC 洩漏
WebRTC 是瀏覽器裡視訊通話、螢幕共享用的技術。為了打通網路,它會向 STUN 伺服器發 UDP 請求,問“你看到我的地址是什麼”。很多代理只處理 TCP,這個 UDP 請求就會直接從本地網路發出,STUN 返回的就是你的真實公網 IP——網頁尾本可以直接讀到。
如何自查:比較 WebRTC 得到的公網地址與網頁請求的出口 IP。cdnping 的檢測會同時顯示兩者。
修復方向:使用接管全部流量的 TUN / 虛擬網絡卡模式;或在瀏覽器中限制 WebRTC 的網路介面(Chrome 系可透過官方擴充套件 WebRTC Network Limiter,Firefox 可在 about:config 中設定 media.peerconnection.ice.default_address_only)。
區域網地址與 mDNS
現代瀏覽器預設把區域網地址替換成隨機的 xxxx.local 主機名(mDNS),網頁看不到 192.168.x.x 這類內網地址。如果檢測結果直接顯示了內網 IP,說明瀏覽器關閉了這項保護。
讀完不如親自測一次。