WebRTC洩漏
WebRTC洩漏測試:瀏覽器通話會透露你哪些IP位址
重點摘要
WebRTC洩漏測試會列出瀏覽器透過WebRTC交給網頁的每一個IP位址,讓你找出原本想隱藏的那一個,通常是開著VPN時你的網路業者位址[1]。用瀏覽器撥打電話號碼時,看得到你IP的是通話服務,而不是你撥給的人,對方看到的是來電號碼[2]。這項測試是我建議在用瀏覽器打電話前做的隱私與安全檢查之一。
關鍵事實
什麼是WebRTC洩漏?
在WebRTC通話開始前,瀏覽器會收集可能的網路路徑,稱為ICE候選(ICE candidates),再交給網頁傳送給另一端。每個候選都帶有一個IP位址,或是用隨機的.local名稱代替被隱藏的區域網路位址。一般網站只看得到你發出請求的公開位址;透過WebRTC,網頁可以得知更多[1]。只要清單中出現你不想分享的位址,就算是洩漏。
通話其餘部分如何傳送,請看WebRTC、SIP與電話網路;就洩漏而言,只有候選清單才重要。MDN指出,這些位址一律會暴露給網頁[6]。
| 候選類型 | 顯示的位址 | 隱私風險 |
|---|---|---|
| host | 你的裝置在區域網路上的位址;如果瀏覽器加以隱藏,則是以.local結尾的隨機名稱[7][3] | 比公開位址低,但IETF認為私有IPv4位址是相當重要的指紋辨識來源[1] |
| srflx(server reflexive) | 你的路由器或VPN向STUN伺服器顯示的公開位址[7] | 如果開著VPN時顯示的是網路業者的位址,風險就高[1] |
| relay | 負責轉送媒體的TURN伺服器上的位址[7] | 低:另一端看到的是中繼伺服器的位址,不是你的[6];但中繼伺服器的營運者仍看得到你 |
IETF認為VPN的情況最嚴重,因為有些人用VPN來保持匿名[1]。另外兩種情況是你的私有位址,以及WebRTC的檢查繞過了代理伺服器,因而暴露你真正的公開位址[1]。
瀏覽器通話會暴露你的IP位址嗎?
對通話服務來說,會:每個網站都看得到你的公開位址[1],而通話還會額外建立一條連到服務伺服器的媒體連線。對你撥打的市話或手機用戶來說,不會:通話在業者的閘道離開網際網路[8],電話網路傳遞的是來電號碼,不是IP位址[2]。App對App的通話則可能讓兩台裝置直接連線。
| 通話類型 | 服務業者 | 你撥打的對象 |
|---|---|---|
| 瀏覽器撥打電話號碼(Google Voice、TwinPhone、Yolla) | 是:由它負責媒體連線 | 否:對方看到的是來電號碼[2] |
| 免費網頁撥號器(Call2Friends、Globfone) | 是:Call2Friends依IP位址限制免費通話次數,Globfone的隱私權政策也把IP位址列為其處理的技術資料和紀錄之一[9][10] | 否:對方看到的是來電號碼 |
| Messenger一對一通話 | 是 | 是:Meta表示你的IP會分享給對方的裝置[4] |
| 是 | 可能,除非開啟「在通話中保護IP位址」;群組通話一律經由轉送[5] | |
| Telegram | 是 | 可能:Telegram在2017年的公告表示,通話會盡可能採用點對點連線[11] |
撥打真實號碼時,關鍵在於服務業者會得知並保留哪些資訊;至於你撥打的對象看到的是什麼,請看用瀏覽器打電話時會顯示哪個號碼。
如何進行WebRTC洩漏測試
洩漏測試網頁做的事和撥號器在通話前做的一樣:建立WebRTC連線、詢問STUN伺服器看到的公開位址,然後把每個候選列出來,並與它透過一般HTTP看到的位址並列。請在每個你用來打電話的瀏覽器上測試,先關閉VPN,再開啟VPN各測一次。
- 關閉VPN:開啟一個洩漏測試網頁,例如BrowserLeaks的WebRTC Leak Test。頂端的「Your Remote IP」和「Your WebRTC IP」下方的「Public IP Address」應該一致。
- 開啟VPN:重新載入。「Your Remote IP」現在應該顯示VPN的位址。
- 如果WebRTC區塊仍列出網路業者的位址,代表WebRTC繞過了通道[1]。
- 以.local結尾的區域網路項目代表位址已被隱藏[3];以192.168.或10.開頭的原始位址則沒有隱藏。
- 如果網頁提供麥克風檢查,請允許後再測一次:撥號器需要麥克風權限,而這項權限可能解鎖更多位址[1]。測完後到網站設定中移除這項權限[12]。
允許麥克風後,Chrome有什麼變化
我在用Mac上的Chrome 156載入一個本機測試網頁,沒有設定STUN伺服器,所以沒有任何位址傳到外部伺服器。在沒有麥克風權限時,網頁只看到一個host候選,名稱是以.local結尾的隨機字串[3]。允許麥克風後,它就收到了我真正的區域網路IPv4位址。
這符合標準的規定:只有在取得同意(例如麥克風權限)時才提供完整的位址清單[1];Safari的引擎WebKit在2017年也描述過同樣的規則[13]。所以你允許的撥號器看得到你的區域網路位址:風險比公開位址小[1]。
限制WebRTC洩漏的瀏覽器設定
Brave為一般使用者提供了WebRTC IP設定的說明。Google的Chrome控制項說明是寫給擴充功能和管理員看的,Microsoft則把Edge的控制項列為管理員政策。Firefox預設就會隱藏區域網路位址,並在about:config保留一個關閉開關。有一條規則到哪裡都適用:關閉WebRTC也會讓瀏覽器撥號器停止運作,因為通話正是靠WebRTC傳送[14]。
| 瀏覽器 | 控制項 | 改變了什麼 | 對瀏覽器通話的影響 |
|---|---|---|---|
| Brave | 隱私設定中的WebRTC IP handling policy,依據Brave的wiki(最後編輯於2018年)[15] | Default Public Interface Only不會暴露任何區域網路位址[15] | 媒體可能改由中繼伺服器傳送[1] |
| Chrome | 擴充功能可設定WebRTC IP handling policy[16];管理員可設定WebRtcIPHandling政策[17] | 依設定值不同,會停止使用私有位址,或只透過代理伺服器傳送媒體[17] | 僅限代理的設定值可能讓音訊改走TCP,IETF表示這會降低品質[1] |
| Edge | 管理員政策WebRtcLocalhostIpHandling[18] | 其中兩個設定值會停止暴露區域網路IP位址[18] | 與Chrome相同 |
| Firefox | 預設隱藏區域網路位址[19];about:config中的media.peerconnection.enabled[20] | 把這個偏好設定改為false就會關閉WebRTC | 瀏覽器撥號器將無法使用 |
| Safari | 內建規則 | 依WebKit在2017年的說明,沒有麥克風或攝影機權限的網頁取得不到host位址[13] | 無 |
VPN對瀏覽器通話有什麼影響
如果VPN讓所有流量(包括WebRTC)都走它的通道,通話服務看到的就是VPN的位址,而不是你的。分流VPN則可能讓WebRTC找到你網路業者的位址[1],所以才要在開著VPN時做洩漏測試。VPN對通話也有副作用。
通話時如何保護IP位址隱私
依通話類型對症下藥。撥打電話號碼時,你撥給的人拿不到你的IP,所以要選一個你信得過的服務,並檢查VPN。App對App通話時,對方的裝置可能直接連到你的裝置,所以如果App有轉送設定,就把它打開。
常見問題
什麼是WebRTC洩漏測試?
我用瀏覽器打電話,對方看得到我的IP位址嗎?
VPN能阻止WebRTC洩漏嗎?
讓所有流量(包括WebRTC)都走通道的VPN可以。分流VPN則未必,因為WebRTC可能在VPN位址之外,另外發現你網路業者的公開位址[1]。唯一能確定的方法,是在連著VPN時,於每個你使用的瀏覽器做洩漏測試,並在更新後重測。
區域網路IP位址洩漏危險嗎?
無痕模式或私密瀏覽能阻止WebRTC洩漏嗎?
不能。IETF指出,透過WebRTC暴露的私有位址可以當作識別碼,讓網站得知一般視窗和私密瀏覽視窗位於同一台裝置[1],所以光靠私密模式無法隱藏它。請使用上面的瀏覽器設定,然後在私密視窗中也做一次洩漏測試。
防止WebRTC洩漏的擴充功能有用嗎?
如何在Firefox中關閉WebRTC?
如何在Chrome中防止WebRTC洩漏?
請 AI 解讀這份研究
每個按鈕都會在新分頁開啟 AI 助理,請它摘要本頁內容,並附上本頁連結作為來源。
資料來源
- RFC 8828: WebRTC IP Address Handling Requirements · IETF (RFC Editor) · 查核於 2026年11月1日
- 47 CFR 64.1601 -- Delivery requirements and privacy restrictions | eCFR · US Code of Federal Regulations (eCFR) · 查核於 2026年11月1日
- Using Multicast DNS to protect privacy when exposing ICE candidates (draft-ietf-mmusic-mdns-ice-candidates) · IETF (Internet-Draft, work in progress) · 查核於 2026年11月1日
- Voice call someone or a group on Messenger - Messenger Help Center (Computer) · 查核於 2026年11月1日
- How to protect your IP address on WhatsApp calls | WhatsApp Help Center · WhatsApp · 查核於 2026年11月1日
- RTCIceCandidate: address property - Web APIs | MDN · MDN Web Docs (Mozilla) · 查核於 2026年11月1日
- RTCIceCandidate: type property - Web APIs | MDN · MDN Web Docs (Mozilla) · 查核於 2026年11月1日
- Make calls | Sonetel help · 查核於 2026年11月1日
- Free call | Call2Friends - Online call · 查核於 2026年11月1日
- Privacy Policy | Globfone · 查核於 2026年11月1日
- Voice Calls: Secure, Crystal-Clear, AI-Powered | Telegram Blog (30 March 2017) · Telegram · 查核於 2026年11月1日
- Use your camera and microphone in Chrome - Computer - Google Chrome Help · Google · 查核於 2026年11月1日
- A Closer Look Into WebRTC | WebKit (3 July 2017) · WebKit (Apple) · 查核於 2026年11月1日
- WebRTC API - Web APIs | MDN · MDN Web Docs (Mozilla) · 查核於 2026年11月1日
- WebRTC Custom Settings · brave/brave-browser Wiki · Brave Software (official GitHub wiki) · 查核於 2026年11月1日
- chrome.privacy | API | Chrome for Developers · Google (Chrome for Developers) · 查核於 2026年11月1日
- Chrome Enterprise policy list: WebRtcIPHandling (WebRTC IP handling) · Google (Chrome Enterprise) · 查核於 2026年11月1日
- Microsoft Edge Browser Policy Documentation WebRtcLocalhostIpHandling | Microsoft Learn · Microsoft · 查核於 2026年11月1日
- Firefox source: modules/libpref/init/all.js (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · 查核於 2026年11月1日
- Firefox source: modules/libpref/init/StaticPrefList.yaml (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · 查核於 2026年11月1日
- Terms of Use – TextNow · 查核於 2026年11月1日
- Privacy Policy – Privacy & Terms – Google · Google · 查核於 2026年11月1日
- Call From Your Browser Without a SIM Card - TwinPhone · 查核於 2026年11月1日