跳到正文

WebRTC泄露

WebRTC泄露测试:一通浏览器电话会暴露你的哪些IP地址

所属专题:网络电话安全吗?浏览器通话能保护什么,又会暴露什么

在 Google 上将 callfrombrowser.org 设为首选来源

要点速览

WebRTC泄露测试会列出浏览器通过WebRTC交给网页的所有IP地址,让你发现本想隐藏的那个地址,通常是开着VPN时你的网络服务商分配的地址[1]。从浏览器拨打电话号码时,能看到你IP的是通话服务,而不是你拨打的人,对方看到的是来电显示号码[2]。这个测试是我建议在用浏览器打电话之前做的隐私与安全检查之一。

关键事实

什么是WebRTC泄露?

在WebRTC通话开始前,浏览器会收集可能的网络路径,称为ICE候选(ICE candidate),并交给网页转发给另一方。每个候选都带有一个IP地址,或者用一个随机的.local名称代替被隐藏的局域网地址。普通网站只能看到你发出请求时的公网地址;通过WebRTC,网页可以了解到更多[1]。只要这份列表里有你不想分享的地址,就算泄露。

通话的其余部分如何传输,见WebRTC、SIP与电话网络;就泄露而言,只有候选列表才重要。MDN指出,候选中的地址总是会暴露给网页[6]。

WebRTC泄露测试列出的地址,以及各自会暴露什么
候选类型显示的地址隐私风险
host你的设备在局域网中的地址;如果浏览器将其隐藏,则是一个以.local结尾的随机名称[7][3]低于公网地址,但IETF认为私有IPv4地址是相当重要的指纹识别来源[1]
srflx(服务器反射)你的路由器或VPN向STUN服务器显示的公网地址[7]如果开着VPN时显示的是你的网络服务商地址,风险就高[1]
relay负责转发媒体流的TURN服务器上的地址[7]低:对方看到的是中继服务器的地址,而不是你的[6];但中继服务器的运营方仍然能看到你

IETF认为VPN这种情况最严重,因为有些人用VPN是为了保持匿名[1]。另外两种情况是你的私有地址泄露,以及WebRTC的检查绕过了代理,从而暴露你真实的公网地址[1]。

浏览器通话会暴露你的IP地址吗?

对通话服务来说,会:每个网站都能看到你的公网地址[1],而通话还会多出一条连到服务商服务器的媒体连接。对你拨打的固话或手机用户来说,不会:通话在服务商的网关离开互联网[8],电话网络传递的是主叫号码,而不是IP地址[2]。应用之间的通话则可能让两台设备直接相连。

按通话类型看谁能看到你的IP地址(依据2026年11月1日查阅的官方帮助页面)
通话类型通话服务你拨打的人
从浏览器拨打电话号码(Google Voice、TwinPhone、Yolla)能:媒体连接由它负责不能:对方看到的是来电显示号码[2]
免费网页拨号器(Call2Friends、Globfone)能:Call2Friends按IP地址限制免费通话次数,Globfone的隐私政策把IP地址列为它处理的技术数据和日志之一[9][10]不能:对方看到的是来电显示号码
Messenger一对一通话能能:Meta表示你的IP会分享给对方的设备[4]
WhatsApp能可能,除非打开“在通话中保护IP地址”;群组通话始终经过中转[5]
Telegram能可能:Telegram在2017年的公告中说,通话会尽可能走点对点连接[11]

拨打真实电话号码时,关键在于服务商会知道并保存哪些信息;至于你拨打的人看到的是什么,见从浏览器打电话时对方看到哪个号码。

怎样做WebRTC泄露测试

泄露测试页面做的事和拨号器在通话前做的一样:建立一个WebRTC连接,询问STUN服务器看到的公网地址,然后把每个候选地址和它通过普通HTTP看到的地址并排列出。在你用来打电话的每个浏览器里都测一遍,先关掉VPN,再打开VPN。

  1. 关闭VPN:打开一个泄露测试页面,比如BrowserLeaks的WebRTC Leak Test。顶部的“Your Remote IP”应该与“Your WebRTC IP”下的“Public IP Address”一致。
  2. 打开VPN:刷新页面。“Your Remote IP”现在应该显示VPN的地址。
  3. 如果WebRTC部分仍然列出你的网络服务商地址,说明WebRTC绕过了隧道[1]。
  4. 以.local结尾的局域网条目表示地址已被隐藏[3];以192.168.或10.开头的原始地址则没有被隐藏。
  5. 如果页面提供麦克风检测,允许后再测一次:拨号器需要麦克风权限,而这个权限可能会解锁更多地址[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]。

各浏览器的WebRTC地址控制(依据厂商文档,2026年11月1日查阅)
浏览器控制项改变了什么对浏览器通话的影响
Brave隐私设置中的WebRTC IP处理策略,依据Brave的wiki(最后编辑于2018年)[15]默认选项Default Public Interface Only不暴露任何局域网地址[15]媒体流可能退而经由中继服务器传输[1]
Chrome扩展程序可以设置WebRTC IP处理策略[16];管理员可以设置WebRtcIPHandling策略[17]取值不同,效果也不同:停止使用私有地址,或者只通过代理发送媒体流[17]仅限代理的取值可能把音频推到TCP上,IETF说这会降低通话质量[1]
Edge管理员策略WebRtcLocalhostIpHandling[18]其中两个取值会停止暴露局域网IP地址[18]与Chrome相同
Firefox默认隐藏局域网地址[19];about:config中的media.peerconnection.enabled[20]把这个首选项设为false就会关闭WebRTC浏览器拨号器停止工作
Safari内置规则没有麦克风或摄像头权限的网页拿不到host地址,这是WebKit在2017年的描述[13]无

VPN对浏览器通话有什么影响

如果VPN让所有流量(包括WebRTC)都走隧道,通话服务看到的就是VPN的地址,而不是你的。分离隧道VPN可能还会让WebRTC发现你的网络服务商地址[1],所以要在开着VPN时做泄露测试。VPN对打电话也有副作用。

打电话时怎样保护你的IP地址

根据通话类型选择对策。拨打电话号码时,你拨打的人拿不到你的IP,所以要选一个你信得过的服务,并检查你的VPN。应用之间通话时,对方的设备可能会直接连到你的设备,所以应用有中转设置的话就打开它。

  1. 浏览器通话:开着VPN做泄露测试;在Brave里选择Default Public Interface Only[15]。
  2. 麦克风:对只用一次的拨号器,选择仅本次允许(Allow this time)[12];在我的Chrome检查中,持有这项权限的网页能看到局域网地址。
  3. WhatsApp:打开“在通话中保护IP地址”。帮助页面涵盖Android、iOS和Mac,不包括网页版,并提醒经过中转的通话质量可能会有所下降[5]。

常见问题

什么是WebRTC泄露测试?

WebRTC泄露测试是一个网页,它运行浏览器通话所用的连接建立过程,列出浏览器提供的每个IP地址,并和网页通过普通HTTP看到的地址并排显示。开着VPN时,列表里出现你的网络服务商地址,说明WebRTC绕过了隧道[1];出现随机的.local名称,说明你的局域网地址已被隐藏[3]。

我从浏览器打电话时,对方能看到我的IP地址吗?

拨打固话或手机时不能。服务商在它的网关把你的浏览器音频转成电话呼叫[23],电话网络传递的是主叫号码,而不是IP地址[2]。应用之间的通话则不同:Messenger表示,一对一通话会把你的IP分享给对方的设备[4]。

VPN能防止WebRTC泄露吗?

能让所有流量(包括WebRTC)都走隧道的VPN可以。分离隧道VPN可能不行,因为WebRTC除了VPN的地址,还可能发现你的网络服务商分配的公网地址[1]。唯一的确认办法,是在连着VPN时,在你使用的每个浏览器里做泄露测试,并在更新后重新测试。

局域网IP地址泄露危险吗?

没有公网地址泄露那么危险。192.168.1.20这样的私有地址不会透露你在哪里,但IETF认为私有IPv4地址是相当重要的指纹识别来源,可以把同一台设备上的普通浏览和无痕浏览会话关联起来[1]。Firefox默认隐藏局域网地址[19],Safari对没有麦克风或摄像头权限的网页隐藏这些地址[13],在我的检查中Chrome也是如此。

无痕模式或隐私浏览能防止WebRTC泄露吗?

不能。IETF指出,通过WebRTC暴露的私有地址可以充当标识符,让网站知道普通窗口和无痕窗口在同一台设备上[1],所以单靠无痕模式无法隐藏它。请使用上面介绍的浏览器设置,然后在无痕窗口里也做一次泄露测试。

防WebRTC泄露的扩展程序管用吗?

部分管用。在Chrome中,扩展程序可以设置浏览器的WebRTC IP处理策略,Google把它描述为在媒体性能和暴露多少局域网地址信息之间做取舍[16]。取值不同,它要么隐藏局域网地址,要么强制媒体流通过代理,而后者可能让音频改走TCP、降低质量[1]。安装后做一次泄露测试,确认设置已经生效。

怎样在Firefox中关闭WebRTC?

在地址栏输入about:config,搜索media.peerconnection.enabled,把它设为false。Mozilla的源代码把这个首选项描述为RTCPeerConnection的开关,关闭后网页也将无法使用麦克风API[20]。这样一来,所有浏览器拨号器都会停止工作,所以对大多数打电话的人来说,保留Firefox的默认设置更好,它本来就会隐藏局域网地址[19]。

怎样在Chrome中防止WebRTC泄露?

通过扩展程序或策略来设置,因为Google只为这两种方式提供了Chrome的WebRTC地址控制文档。扩展程序可以设置WebRTC的IP处理策略[16],管理员可以设置WebRtcIPHandling,其中default_public_interface_only这个值会阻止WebRTC使用内网地址[17]。我在Chrome里检查时,没有麦克风权限的网页本来就只能看到一个随机的.local名称[3]。如果用VPN,真正的解决办法是让隧道承载全部流量[1]。任何彻底屏蔽WebRTC的做法,也会让浏览器通话无法使用[14]。

网站不经询问就能通过WebRTC看到我的IP吗?

公网地址可以,但网站本来就能看到它:以Safari为例,它只向没有麦克风权限的网页提供网站原本就能获取的地址[13]。问题出在浏览器代理上。如果允许直接连接互联网,WebRTC的STUN检测可能绕过代理,暴露你真实的公网地址[1]。内网地址受到的保护更好:标准规定,只有在取得麦克风权限等授权后才提供完整的地址列表[1],我在Chrome里检查时,没有该权限的网页只看到一个随机的.local名称[3]。

让 AI 解读这项调研

每个按钮都会在新标签页中打开对应的 AI 助手,请它总结本页内容,并附上本页链接作为来源。

资料来源

  1. RFC 8828: WebRTC IP Address Handling Requirements · IETF (RFC Editor) · 核实于2026年11月1日
  2. 47 CFR 64.1601 -- Delivery requirements and privacy restrictions | eCFR · US Code of Federal Regulations (eCFR) · 核实于2026年11月1日
  3. 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日
  4. Voice call someone or a group on Messenger - Messenger Help Center (Computer) · 核实于2026年11月1日
  5. How to protect your IP address on WhatsApp calls | WhatsApp Help Center · WhatsApp · 核实于2026年11月1日
  6. RTCIceCandidate: address property - Web APIs | MDN · MDN Web Docs (Mozilla) · 核实于2026年11月1日
  7. RTCIceCandidate: type property - Web APIs | MDN · MDN Web Docs (Mozilla) · 核实于2026年11月1日
  8. Make calls | Sonetel help · 核实于2026年11月1日
  9. Free call | Call2Friends - Online call · 核实于2026年11月1日
  10. Privacy Policy | Globfone · 核实于2026年11月1日
  11. Voice Calls: Secure, Crystal-Clear, AI-Powered | Telegram Blog (30 March 2017) · Telegram · 核实于2026年11月1日
  12. Use your camera and microphone in Chrome - Computer - Google Chrome Help · Google · 核实于2026年11月1日
  13. A Closer Look Into WebRTC | WebKit (3 July 2017) · WebKit (Apple) · 核实于2026年11月1日
  14. WebRTC API - Web APIs | MDN · MDN Web Docs (Mozilla) · 核实于2026年11月1日
  15. WebRTC Custom Settings · brave/brave-browser Wiki · Brave Software (official GitHub wiki) · 核实于2026年11月1日
  16. chrome.privacy | API | Chrome for Developers · Google (Chrome for Developers) · 核实于2026年11月1日
  17. Chrome Enterprise policy list: WebRtcIPHandling (WebRTC IP handling) · Google (Chrome Enterprise) · 核实于2026年11月1日
  18. Microsoft Edge Browser Policy Documentation WebRtcLocalhostIpHandling | Microsoft Learn · Microsoft · 核实于2026年11月1日
  19. Firefox source: modules/libpref/init/all.js (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · 核实于2026年11月1日
  20. Firefox source: modules/libpref/init/StaticPrefList.yaml (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · 核实于2026年11月1日
  21. Terms of Use – TextNow · 核实于2026年11月1日
  22. Privacy Policy – Privacy & Terms – Google · Google · 核实于2026年11月1日
  23. Call From Your Browser Without a SIM Card - TwinPhone · 核实于2026年11月1日