DNS 洩漏和 WebRTC 洩漏經常被放在同一個檢測頁面,但它們不是同一件事。
- DNS 洩漏關注的是:查詢網域名稱時,DNS 請求是否經過預期的 Resolver 和網路路徑。
- WebRTC 洩漏關注的是:瀏覽器在建立即時通訊連線時,是否向網站暴露了額外的本地位址、公網位址或另一條網路出口。
兩種檢測都可能出現「另一個 IP」,但另一個 IP 不一定就是使用者的真實公網 IP,也不一定代表 VPN 已經失效。
先看結論
- DNS 洩漏和 WebRTC 洩漏是兩種不同問題。
- DNS 測試通常觀察處理查詢的 Resolver,而不是直接讀取使用者原始 IP。
- Resolver 與公開 IP 不同國家,不一定構成洩漏,可能與公共 DNS、Anycast、DoH 或企業網路有關。
- WebRTC 透過 ICE 收集 Host、Server-reflexive 和 Relay 等候選地址。
192.168.x.x、10.x.x.x等私有位址不是可在網際網路路由的公網 IP。- 額外的公網 IPv4 或 IPv6 才更值得進一步檢查。
- WebRTC 沒有顯示額外 IP,不代表一定沒有 VPN、Proxy 或其他洩漏。
- 測試失敗、沒有資料和明確未觀察到,必須分開顯示。
- DoH/DoT 加密 DNS 傳輸,但不自動保證 DNS 一定經過 VPN。
- 正確判讀需要比較 IP 類型、ASN、國家、候選類型、IPv4/IPv6 和測試限制。
本站模型提示(1.6.0): Caylet 將「資料庫確認」「可用來源未發現」與「沒有資料」分開顯示;後兩者都不代表已證明安全。Caylet 綜合 IP 風險分值只使用 Scamalytics 與 AbuseIPDB 的有效數值,IP2Location 與 Feodo Tracker 結果獨立呈現,IPinfo Lite 僅作 ASN 背景參考。
DNS 是什麼?
DNS 是 Domain Name System,也就是網域名稱系統。
人們習慣輸入:
example.com
但裝置建立網路連線時,需要取得對應的 IP 地址。DNS 負責把網域名稱解析成可用的網路資料,例如:
- IPv4 地址
- IPv6 地址
- 郵件伺服器
- 服務位置
- 其他 DNS 記錄
一個簡化的 DNS 查詢流程是:
瀏覽器或 App
↓
作業系統/瀏覽器 DNS 元件
↓
Recursive Resolver
↓
Root、TLD 與 Authoritative DNS
↓
回傳查詢結果
使用者日常最常接觸的是 Recursive Resolver,也就是遞迴解析器。它可能由以下服務提供:
- ISP
- 行動電信商
- 公司或學校
- 公共 DNS 服務
- VPN
- 瀏覽器 DoH 供應商
- 本地路由器或安全軟體
DNS 洩漏究竟是什麼?
「DNS 洩漏」不是 IETF 對單一協定錯誤的正式統一定義,而是隱私和 VPN 測試中常用的描述。
一般是指:
使用者預期 DNS 查詢應經過某個安全、加密或 VPN 路徑,但部分查詢實際由其他 Resolver 或其他網路介面處理。
例如,使用者啟用 VPN 後預期:
DNS 查詢
↓
VPN 隧道
↓
VPN Resolver
實際卻是:
DNS 查詢
↓
本地 ISP Resolver
這時本地 ISP 可能知道使用者查詢了哪些網域,而查詢結果也可能受到本地網路政策影響。
DNS 洩漏和「網站看到真實 IP」不是同一件事
DNS 洩漏測試通常能觀察到:
- 哪些 Resolver 查詢了測試網域
- Resolver 的 IP
- Resolver 的 ASN 或大致位置
它不一定能直接看到:
- 使用者原本的家庭公網 IP
- 裝置精確位置
- VPN 隧道內部地址
- 所有 DNS 查詢內容
所以較精確的說法是:
DNS 洩漏可能暴露所使用的解析路徑和網路供應商,但不必然直接暴露使用者的原始公網 IP。
DNS 洩漏測試是如何工作的?
一般網頁 JavaScript 沒有一個通用 API 可以直接詢問:
目前系統的 DNS Resolver IP 是多少?
因此,DNS 測試通常使用一組由測試服務控制的唯一網域名稱。
簡化流程如下:
- 測試頁生成一個隨機且唯一的子網域。
- 瀏覽器請求該網域對應的資源。
- 裝置或瀏覽器向 Recursive Resolver 查詢該名稱。
- Resolver 再向測試服務控制的 Authoritative DNS 查詢。
- Authoritative DNS 記錄前來查詢的 Resolver IP。
- 測試頁把觀察到的 Resolver 列出。
例如:
隨機名稱:
a8f31c.example-test.invalid
權威 DNS 觀察到:
203.0.113.53
這個 203.0.113.53 通常是 Resolver 或其出口,不一定是使用者本人的公開 IP。
為什麼一次測試可能看到多個 Resolver?
可能原因包括:
- Resolver 集群
- Anycast
- 瀏覽器和系統分別查詢
- IPv4 和 IPv6
- 備援 Resolver
- 公司安全軟體
- 多個網路介面
- VPN 分流
- 測試頁載入多個唯一網域
- DNS 快取和重新查詢
看到多個 Resolver 不等於一定洩漏。
什麼是 Recursive Resolver?
Recursive Resolver 代表用戶完成後續 DNS 查詢。
它會:
- 接收客戶端問題。
- 查詢 DNS 階層或使用快取。
- 取得最終答案。
- 把答案回傳給客戶端。
外部權威 DNS 通常看到的是 Resolver 來查詢,而不是每一台終端裝置直接查詢。
因此,假設:
公開 IP:198.51.100.20
Resolver IP:203.0.113.53
這兩個 IP 不同是正常的。真正需要判斷的是 Resolver 是否符合預期,例如:
- 是 VPN 提供的 Resolver
- 是設定中的公共 DNS
- 是公司 Resolver
- 還是意外使用本地 ISP Resolver
為什麼 DNS Resolver 和公開 IP 的國家不同?
1. 公共 DNS 使用 Anycast
大型 DNS 服務常使用 Anycast。
同一個 Resolver IP 可以從多個國家或城市宣告。使用者通常會被路由到較合適的節點,但 GeoIP 資料庫仍可能把該 IP 固定顯示在另一個地區。
所以:
公開 IP:日本
Resolver GeoIP:美國
不一定表示查詢真的跨越太平洋,也不一定是 DNS 洩漏。
2. 瀏覽器啟用 DoH
瀏覽器可能繞過作業系統設定,直接向所選的 DoH Resolver 發送加密 DNS 請求。
這時:
- 系統 DNS 可能是 ISP
- 瀏覽器 DNS 可能是公共 DoH
- 兩者的 ASN 和國家不同
Mozilla 的 Firefox 提供不同 DoH 保護層級,並可能依瀏覽器設定和網路訊號決定使用方式。
3. 公司或學校統一解析
企業可能把 DNS 送往:
- 公司總部
- 雲端安全平台
- 零信任閘道
- 內容過濾服務
員工在香港,Resolver 顯示新加坡或美國,可以是正常政策。
4. 行動網路或漫遊
手機連接當地基地台,但 DNS 和數據流量可能由漫遊核心網路在另一個國家處理。
5. GeoIP 判定錯誤
Resolver IP 的城市或國家也可能因資料庫未更新、Anycast 或網段註冊資訊而顯示錯誤。
DoH 和 DoT 是什麼?
DNS over HTTPS
DNS over HTTPS,簡稱 DoH,使用 HTTPS 傳送 DNS 查詢。RFC 8484 定義了這種方法。
DoH 的主要作用是:
- 加密客戶端到 DoH Resolver 的 DNS 傳輸
- 降低同一路徑上第三方直接讀取或修改 DNS 查詢的能力
- 利用現有 HTTPS 基礎設施傳送 DNS
DNS over TLS
DNS over TLS,簡稱 DoT,使用 TLS 保護 DNS 傳輸。RFC 7858 定義了相關協定。
DoT 和 DoH 的共同點是:
- 都保護客戶端到 Resolver 之間的 DNS 傳輸
- Resolver 仍需要處理查詢
- Resolver 仍可能知道客戶端查詢內容
- 後續權威 DNS 查詢仍由 Resolver 執行
加密 DNS 不等於完全匿名
DoH 或 DoT 不能保證:
- Resolver 不記錄查詢
- 網站看不到連線 IP
- DNS 一定經過 VPN
- 所有 App 都使用同一 DNS
- DNS 結果不受帳戶或網路政策影響
它主要解決的是傳輸路徑上的機密性和完整性問題,而不是讓 DNS 從所有參與方完全隱形。
為什麼使用 VPN 後仍可能出現 DNS 洩漏?
1. VPN 沒有接管系統 DNS
VPN 建立了流量隧道,但作業系統仍使用原本的 ISP Resolver。
2. 瀏覽器 DoH 獨立運作
瀏覽器可能直接連接自訂 DoH Resolver。這不一定是不安全,但可能不符合使用者「所有 DNS 都走 VPN Resolver」的預期。
3. Split Tunneling
分流設定會讓部分 App、目的地或協定不經過 VPN。
DNS 也可能依設定分流:
- 公司網域走公司 DNS
- 公開網域走本地 DNS
- 某些 App 不走 VPN
4. 多張網卡
裝置可能同時啟用:
- Wi-Fi
- 乙太網路
- 行動熱點
- 虛擬網卡
- 公司 VPN
- 個人 VPN
不同介面可能各有 DNS 設定。
5. IPv4 和 IPv6 路徑不同
VPN 可能只處理 IPv4,但 DNS Resolver 或目的地可以透過 IPv6 連線。
6. VPN 斷線或切換期間
VPN 重連時,系統可能短暫回到原有 DNS。
7. 作業系統的智慧多宿主解析
部分系統可能同時向多個網路介面查詢,以提高解析速度或可靠性。這可能造成非預期的 Resolver 被觀察到。
EDNS Client Subnet 是否會暴露使用者 IP?
EDNS Client Subnet,簡稱 ECS,是 RFC 7871 定義的一項 DNS 擴充。
Resolver 可以在向權威 DNS 查詢時,附帶一段經截短的客戶端網路前綴,協助 CDN 回傳更接近使用者的結果。
例如,它可能傳送:
客戶端 IPv4 前綴:198.51.100.0/24
而不是完整單一地址:
198.51.100.37
ECS 可能透露什麼?
它可能讓權威 DNS 或 CDN 了解:
- 使用者大致來自哪個 IP 網段
- 應該選擇哪個地理節點
ECS 不一定會被使用
是否傳送、傳送多長前綴,取決於:
- Resolver 政策
- 權威 DNS 支援
- 隱私設定
- 查詢內容
所以,DNS 洩漏測試看到 Resolver IP,不代表一定同時看到 ECS;即使存在 ECS,也不應直接說成完整真實 IP。
WebRTC 是什麼?
WebRTC 是瀏覽器內建的即時通訊技術,常用於:
- 視訊會議
- 語音通話
- 即時資料傳輸
- 點對點連線
- 線上客服
- 協作工具
為了讓兩端在 NAT、防火牆和不同網路環境下建立連線,WebRTC 使用 ICE,也就是 Interactive Connectivity Establishment。
ICE 會收集多種可能的連線地址,稱為 Candidates。
WebRTC 的 ICE Candidate 有哪些類型?
常見候選類型包括:
| Candidate 類型 | 簡寫 | 基本含義 |
|---|---|---|
| Host | host |
裝置網路介面可使用的本地候選 |
| Server-reflexive | srflx |
STUN 伺服器觀察到的 NAT 外部映射 |
| Peer-reflexive | prflx |
連線檢查過程中發現的映射 |
| Relay | relay |
經 TURN 中繼伺服器提供的候選 |
RFC 8445 定義 ICE 的核心機制,RFC 8489 定義 STUN。
Host Candidate
Host Candidate 可能是:
- 私有 IPv4
- 本地 IPv6
- 公網 IPv6
- 經瀏覽器隱私處理的主機名稱或地址
現代瀏覽器可能限制直接暴露本地介面地址,RFC 8828 也專門規定 WebRTC 的 IP 地址處理要求。
Server-reflexive Candidate
STUN 伺服器可以告訴瀏覽器:
我從外部看到你的來源映射是這個 IP 和 Port。
在家庭 NAT 環境中,這通常是路由器或網路出口的公網映射。
Relay Candidate
當直接連線不可行或隱私政策要求使用中繼時,可以透過 TURN Server 中轉。
此時對端主要透過 Relay Candidate 連線,而不是直接使用本地或 NAT 映射地址。
什麼是 WebRTC 洩漏?
一般語境中的 WebRTC 洩漏是指:
網站透過 WebRTC ICE 候選觀察到,除了正常 HTTP 出口之外的額外網路地址,尤其是未經預期 VPN 路徑處理的公網地址。
例如:
HTTP 公開 IP:
203.0.113.20(VPN,美國)
WebRTC Server-reflexive IP:
198.51.100.37(本地 ISP,香港)
這種結果表示網站可能觀察到另一條公網路徑,值得檢查。
但下面這種情況不同:
HTTP 公開 IP:
203.0.113.20
WebRTC Host Candidate:
192.168.1.12
192.168.1.12 是私有 IPv4,不能在公共網際網路路由。它可能透露裝置位於一個常見家庭 LAN,但不是家庭寬頻的公網出口。
私有 IP、共享位址和公網 IP 要如何區分?
常見 IPv4 私有範圍
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
電信商共享位址空間
100.64.0.0/10
它通常用於 CGNAT 內部,不是一般公共路由位址。
本機迴圈
127.0.0.0/8
IPv6 本地與特殊位址
IPv6 也有:
- Link-local
- Unique Local
- Loopback
- 全球單播位址
因此,WebRTC 顯示一個 IPv6 時,必須先判斷它是否為全球可路由地址,不能只因格式看起來陌生就當成洩漏。
為什麼 WebRTC 可能顯示另一個公網 IP?
1. VPN 沒有處理 IPv6
這是常見情況之一:
IPv4:經 VPN
IPv6:直接經 ISP
HTTP 檢測若只顯示 IPv4,使用者可能以為所有流量都在 VPN 中;WebRTC 或支援 IPv6 的測試則可能看到原生 IPv6。
2. 多張網路介面
裝置同時連接 Wi-Fi 和乙太網路,或存在虛擬網卡。
WebRTC 可能收集多條可用路徑。
3. VPN Split Tunneling
VPN 政策可能讓即時通訊流量、UDP 或某些 App 走直接路徑。
4. 瀏覽器與 VPN 的整合差異
不同瀏覽器、作業系統和 VPN Client 對 WebRTC、UDP、IPv6 和路由表的處理不同。
5. 企業或遠端桌面環境
瀏覽器運行在:
- 本機
- 遠端桌面
- 虛擬機
- 公司容器
可能產生不同的候選地址。
6. 測試工具把地址分類錯誤
測試頁可能:
- 把私有 IP 誤標成真實 IP
- 沒區分 Host 和 Server-reflexive
- 使用過時的解析方式
- 忽略現代瀏覽器的 mDNS 或隱私處理
- 把測試失敗誤寫成安全
所以測試結果必須顯示 Candidate Type 和地址類型。
WebRTC 能否在沒有攝影機權限時工作?
許多 WebRTC 網路連線和 ICE 收集並不等同於存取攝影機或麥克風。
瀏覽器可以建立 RTCPeerConnection 並收集部分網路候選,而不一定先取得影音裝置權限。
但現代瀏覽器會依:
- 網站權限
- 隱私模式
- 瀏覽器設定
- WebRTC IP Handling Policy
- 網路環境
限制或調整暴露的地址。
因此,不能依賴十年前的結論,認定所有瀏覽器都會把所有本地與公網地址完整交給任意網站。
現代瀏覽器如何降低 WebRTC IP 暴露?
RFC 8828 討論了 WebRTC 建立連線所需的地址可用性與隱私風險。
瀏覽器可能採用:
- 限制 Host Candidate
- 使用 mDNS 名稱替代部分本地 IP
- 僅允許預設路由介面
- 在特定權限後提供更多地址
- 優先使用 Relay
- 依隱私模式調整候選
- 限制跨來源可見資訊
所以:
WebRTC 具備觀察額外網路資訊的能力,不代表每個瀏覽器、每個網站都能看到相同內容。
DNS 洩漏和 WebRTC 洩漏有什麼核心差別?
| 項目 | DNS 洩漏 | WebRTC 洩漏 |
|---|---|---|
| 主要觀察 | DNS 查詢由誰解析 | ICE 收集到哪些候選地址 |
| 常見可見對象 | Recursive Resolver IP | Host、Server-reflexive、Relay 等地址 |
| 是否一定看到原始公網 IP | 不一定 | 額外 srflx 或全球地址時有可能 |
| 是否依賴 WebRTC | 否 | 是 |
| DoH/DoT 是否相關 | 直接相關 | 通常不是核心 |
| IPv6 是否可能造成 | 可以 | 可以 |
| 常見誤報 | Anycast、公共 DNS、企業 Resolver | 私有 IP、mDNS、地址類型誤判 |
| 正確判讀重點 | Resolver 是否符合預期 | 額外地址是否為可路由公網地址 |
DNS 和 WebRTC 測試常見的四種狀態
任何提供這類測試的工具都不應只顯示「安全/洩漏」,而應區分:
1. 未觀察到額外資訊
例如:
- 只觀察到預期 Resolver
- WebRTC 沒有額外公網地址
2. 觀察到差異,但存在合理解釋
例如:
- 公共 DoH Resolver
- Anycast
- 公司 DNS
- 私有 WebRTC Host Candidate
3. 觀察到高價值不一致
例如:
- VPN IPv4 與原生 ISP IPv6 同時出現
- WebRTC 顯示不同國家的公網
srflx - DNS 明確回到本地 ISP,而使用者預期 VPN 接管
4. 測試失敗或資料不足
例如:
- JavaScript 被封鎖
- STUN 無法連線
- 瀏覽器限制 ICE
- DNS 查詢被快取
- 權威伺服器未收到測試請求
- API 超時
第四種不能顯示為「沒有洩漏」。
如何判讀一個 DNS 測試結果?
第一步:確認測試看到的是 Resolver
不要把 Resolver IP 直接當成使用者真實 IP。
第二步:查看 Resolver 的 ASN 和服務名稱
判斷它是:
- ISP DNS
- VPN DNS
- 公共 DNS
- 公司安全服務
- 瀏覽器 DoH
- 未知 Resolver
第三步:比較預期路徑
使用者是否預期:
- 所有 DNS 經 VPN
- 使用自訂公共 DNS
- 公司網域使用公司 DNS
- 瀏覽器使用 DoH
沒有「唯一正確 Resolver」,只有是否符合當前設定。
第四步:考慮 Anycast 和 GeoIP
不要只因城市或國家不同就下結論。
第五步:重複測試並排除快取
唯一隨機子網域可以降低快取干擾,但不同 App 和系統服務仍可能有各自 DNS 路徑。
如何判讀一個 WebRTC 測試結果?
第一步:查看 Candidate Type
至少區分:
hostsrflxprflxrelay
第二步:分類地址
判斷它是:
- 私有 IPv4
- CGNAT Shared Address
- IPv6 Link-local/Unique Local
- 公網 IPv4
- 全球可路由 IPv6
- mDNS 主機名稱
- 無法解析
第三步:與 HTTP 公開 IP 比較
如果完全相同,通常表示 WebRTC 只觀察到同一出口。
如果不同,再比較:
- ASN
- 國家
- 網路類型
- IPv4/IPv6
- 是否為 VPN 或本地 ISP
第四步:確認測試是否完整
STUN 被封鎖時,可能無法取得 srflx。
沒有結果不等於沒有風險。
第五步:避免把本地 IP 寫成「真實 IP 已暴露」
應明確標示:
觀察到區域網路私有位址,該地址不能直接在公共網際網路路由。
使用 VPN 時出現另一個 IP,應該先檢查什麼?
正常的診斷順序是:
- 確認另一個地址是否為公網地址。
- 確認它是 IPv4 還是 IPv6。
- 查看 Candidate Type。
- 比較另一個地址的 ASN 和 ISP。
- 確認 VPN 是否支援 IPv6。
- 檢查是否啟用 Split Tunneling。
- 確認瀏覽器 DoH 和系統 DNS 設定。
- 比較 Wi-Fi、乙太網路和其他介面。
- 重新連線後再次測試。
- 查看測試是否明確成功,而不是超時或被阻擋。
這是排查設定一致性的正常方法,不是規避平台安全檢測。
關閉 WebRTC 是不是最好的做法?
不一定。
完全停用 WebRTC 可能影響:
- 線上會議
- 語音通話
- 客服
- 協作軟體
- 瀏覽器內即時功能
對一般使用者,應先確認:
- 是否真的出現額外公網 IP
- 是否只是私有地址
- 是否存在 IPv6 直連
- VPN 是否提供防洩漏設定
- 瀏覽器是否已有隱私保護
沒有必要因檢測頁顯示 192.168.1.5,就認定必須停用整個 WebRTC。
DoH 是否應該關閉,讓 DNS 跟隨 VPN?
這取決於實際需求和 VPN 設計。
可能適合保留 DoH 的情況
- 使用者信任所選 DoH 供應商
- 需要加密本地網路上的 DNS
- VPN 明確支援或允許該 DoH 路徑
- 企業政策要求使用指定安全 Resolver
可能需要調整的情況
- VPN 要求所有 DNS 經由自己的 Resolver
- DoH 繞過公司內部網域解析
- 不同 DNS 路徑造成內容或安全策略異常
- 使用者需要統一 DNS 出口
重點不是「DoH 一定好」或「DoH 一定是洩漏」,而是:
實際 DNS 路徑是否符合使用者與網路管理者的安全預期。
DNS 或 WebRTC 洩漏會造成什麼影響?
可能影響包括:
隱私
本地 ISP 或其他 Resolver 可能看見 DNS 查詢;網站可能觀察到額外的網路地址。
地區判斷
DNS 或額外 IP 的國家不同,可能影響 CDN、內容和風控判斷。
企業政策
DNS 沒有經過公司安全 Resolver,可能繞過惡意網域過濾或內部網域解析。
VPN 完整性
額外的原生 IPv6 或 srflx 地址可能表示部分流量未走預期隧道。
誤報
公共 DNS、企業 Resolver、Anycast 和私有地址可能被低品質測試頁錯誤標成嚴重洩漏。
DNS 洩漏是否等於 DNS 查詢內容被網站看見?
不完全是。
目標網站通常知道使用者正在訪問自己,因為使用者已經向它建立連線。
DNS 洩漏的主要額外隱私問題是:
- 本地 ISP 或非預期 Resolver 可能看見查詢
- 權威 DNS 可觀察 Resolver 查詢
- ECS 可能提供近似客戶端網段
- 網路管理者可能建立查詢紀錄
但使用 HTTPS 時,DNS 本身通常不包含完整 URL 路徑,例如:
example.com/private/page?id=123
DNS 一般解析的是網域名稱,而不是完整網頁路徑。
DNS 與 WebRTC 工具應如何顯示結果?
目前 Caylet IP 不執行 DNS 洩漏檢測,因此不會顯示 Resolver 或對 DNS 路徑作出結論;網站目前只提供有限的 WebRTC 額外公網 IP 觀察。以下 DNS 欄位是對一般檢測工具的設計建議,不代表本站現有功能。
DNS 區塊
建議顯示:
- 觀察到的 Resolver IP
- Resolver ASN
- Resolver Organization
- 國家與城市
- 是否為已知公共 DNS
- 是否疑似 VPN DNS
- Resolver 數量
- 測試時間
- 測試狀態
- 與公開 IP 的一致性說明
建議文案示例:
觀察到公共 DoH Resolver。Resolver 的 GeoIP 國家與目前公開 IP 不同,但公共 DNS 可能使用 Anycast,因此不能只靠國家差異判定 DNS 洩漏。
WebRTC 區塊
建議顯示:
- Candidate Type
- 地址
- 地址類型
- IPv4/IPv6
- 是否為公網
- ASN 和國家
- 是否與 HTTP 公開 IP 相同
- STUN 測試狀態
- 風險解釋
建議文案示例:
觀察到一個私有 IPv4 Host Candidate。該地址不能在公共網際網路路由,不代表家庭寬頻公網 IP 已暴露。
或者:
觀察到另一個全球可路由 IPv6,ASN 屬於本地 ISP,與目前 VPN IPv4 出口不同。這可能表示 IPv6 未經相同隧道路徑處理,建議檢查 VPN 的 IPv6 支援。
三態和測試狀態
不要只使用:
- 安全
- 不安全
至少應包括:
- 正常/符合預期
- 發現不一致
- 資料不足
- 測試失敗
- 需要人工判讀
使用 Caylet 檢查目前的 IP、WebRTC 與連線協定觀察
常見誤解
誤解一:DNS 測試顯示另一個 IP,就是我的真實 IP
錯誤。它通常是 Recursive Resolver 的 IP。
誤解二:Resolver 在另一個國家,就一定發生 DNS 洩漏
錯誤。Anycast、公共 DNS、DoH、企業網路和 GeoIP 誤差都可能造成差異。
誤解三:WebRTC 顯示 192.168.x.x,代表網站知道我的住址
錯誤。這是私有區域網路位址,不能直接對應門牌地址。
誤解四:WebRTC 沒有返回額外 IP,就證明 VPN 完全安全
錯誤。測試可能被瀏覽器限制、STUN 失敗或只覆蓋部分協定。
誤解五:DoH 一定會繞過 VPN
不一定。DoH 連線本身也可能經 VPN,取決於路由和設定。
誤解六:DoH 就能讓 DNS 完全匿名
錯誤。DoH Resolver 仍需要處理查詢,權威 DNS 也會收到 Resolver 的後續請求。
誤解七:停用 WebRTC 是唯一解決方案
錯誤。應先判斷地址類型並修正實際的 IPv6、DNS 或分流問題。
常見問題
DNS 洩漏是否代表網站看到了我的真實 IP?
不一定。DNS 洩漏通常表示 DNS 查詢由預期路徑之外的 Resolver 處理。網站或測試服務可能看到 Resolver 的 IP,而不是使用者原本的公網 IP。若 Resolver 與公開出口不一致,仍需結合 ASN、國家、DoH/DoT、Anycast 和企業網路情境判讀。
WebRTC 顯示 192.168.x.x 是否代表真實 IP 洩漏?
通常不是。192.168.x.x 屬於私有 IPv4,只在區域網路中使用,不能直接在公共網際網路路由。它可能透露本地網路結構,但不等於公開網站已取得家庭寬頻的公網 IP。
WebRTC 顯示另一個公網 IP 是否一定是 VPN 洩漏?
不一定,但值得檢查。另一個公網 IP 可能來自未經 VPN 處理的 IPv6、第二張網卡、分流設定、企業網路或真正的 WebRTC 路徑暴露。應比較地址是否為公網、ASN 和國家是否不同,以及候選類型和測試是否成功。
DNS Resolver 顯示另一個國家是否一定是 DNS 洩漏?
不是。公共 DNS 和企業 Resolver 可能使用 Anycast,GeoIP 也可能定位到營運節點而非實際處理位置。瀏覽器 DoH、公司安全網路和漫遊出口也可能造成不同國家。國家不同是需要解釋的訊號,不是單獨的定論。
使用 DoH 或 DoT 是否就完全沒有 DNS 洩漏?
DoH 和 DoT 可以加密客戶端到所選 Resolver 的 DNS 傳輸,但不保證查詢一定經過 VPN,也不隱藏 Resolver 向權威 DNS 發出的後續查詢。是否符合預期仍取決於瀏覽器、作業系統、VPN 和網路設定。
關閉 WebRTC 是否是解決問題的唯一方法?
不是。WebRTC 是視訊、語音和即時通訊的重要網頁技術,現代瀏覽器也具備 IP 隱私處理。正常使用者應先確認是否真的暴露額外公網 IP,再檢查 VPN 的 IPv4/IPv6、DNS 和分流支援,而不是因看到本地位址就直接停用所有 WebRTC 功能。
總結
DNS 洩漏和 WebRTC 洩漏都與「實際網路路徑是否符合預期」有關,但觀察對象不同。
DNS 洩漏主要關注:
- DNS 查詢由哪個 Resolver 處理
- 是否經過預期的 VPN、公司或加密 DNS 路徑
- 是否存在本地 ISP、分流或多介面查詢
WebRTC 洩漏主要關注:
- ICE 收集到哪些地址
- 是否出現額外可路由公網 IP
- IPv4 和 IPv6 是否經過不同出口
- Candidate Type 和測試狀態是否清楚
正確判讀需要區分:
- Resolver IP 與使用者公網 IP
- 私有地址與公網地址
- Host、Server-reflexive 和 Relay Candidate
- 明確未觀察到與測試失敗
- 合理網路差異與真正路徑暴露
最重要的原則是:
看到另一個 IP,不要立刻下結論;先確認它是誰的 IP、屬於哪種地址、從哪個協定和測試步驟被觀察到。
主要資料來源
- RFC Editor, RFC 1034: Domain Names — Concepts and Facilities
- RFC Editor, RFC 1035: Domain Names — Implementation and Specification
- RFC Editor, RFC 7858: Specification for DNS over Transport Layer Security
- RFC Editor, RFC 8484: DNS Queries over HTTPS
- RFC Editor, RFC 7871: Client Subnet in DNS Queries
- RFC Editor, RFC 8445: Interactive Connectivity Establishment
- RFC Editor, RFC 8489: Session Traversal Utilities for NAT
- RFC Editor, RFC 8828: WebRTC IP Address Handling Requirements
- RFC Editor, RFC 8826: Security Considerations for WebRTC
- MDN Web Docs, RTCIceCandidate
- MDN Web Docs, RTCIceCandidate: type property
- MDN Web Docs, RTCIceCandidate: address property
- MDN Web Docs, RTCIceCandidate: relatedAddress property
- Mozilla Support, Configure DNS over HTTPS protection levels in Firefox
本文提供一般網路技術、隱私與安全診斷資訊,不提供規避網站安全或平台風控的方法。DNS、WebRTC、IPv4/IPv6 和 VPN 行為會因瀏覽器、作業系統、供應商與時間而變化,任何單次測試都不應視為絕對結論。