Skip to content

WebRTC leaks

WebRTC leak test: what a browser call reveals about your IP address

Part of: Is VoIP safe? What a browser call protects and what it exposes

TL;DR

A WebRTC leak test lists every IP address your browser hands a web page through WebRTC, so you can spot one you meant to hide, usually your internet provider's address while a VPN is on [1]. A browser call to a phone number shows your IP to the calling service, not to the person you ring, who gets a caller ID [2]. The test is one of the privacy and safety checks I suggest before calling from a browser.

Key facts

What is a WebRTC leak?

Before a WebRTC call, the browser collects possible network routes, called ICE candidates, and hands them to the web page to pass to the other side. Each carries an IP address, or a random .local name in place of a hidden local one. An ordinary website sees only the public address your request came from; through WebRTC a page can learn more [1]. A leak is any address in that list you did not mean to share.

How the rest of a call travels is in WebRTC, SIP and the phone network; for leaks, only the candidate list matters. MDN notes its addresses are always exposed to the page [6].

The addresses a WebRTC leak test lists, and what each one reveals
Candidate typeAddress it showsPrivacy risk
hostYour device's address on the local network, or a random name ending in .local if the browser hides it [7][3]Lower than a public address, but the IETF calls private IPv4 addresses a fairly significant fingerprinting surface [1]
srflx (server reflexive)The public address your router or VPN shows to a STUN server [7]High if it is your provider's address while a VPN is on [1]
relayAn address on a TURN server that forwards the media [7]Low: the other side sees the relay's address, not yours [6]; the relay's operator still sees you

The IETF calls the VPN case the most significant, because some people use a VPN to stay anonymous [1]. The other two cases are your private address and a proxy that WebRTC's checks bypass, which reveals your real public address [1].

Does a browser call expose your IP address?

To the calling service, yes: every website sees your public address [1], and a call adds a media connection to the service's servers. To someone you call on a landline or mobile, no: the call leaves the internet at the provider's gateway [8], and the phone network passes on a calling number, not an IP address [2]. App-to-app calls can connect two devices directly.

Who can see your IP address, by type of call (official help pages read on 1 November 2026)
Type of callThe serviceThe person you call
Browser to a phone number (Google Voice, TwinPhone, Yolla)Yes: it runs the media connectionNo: they see a caller ID [2]
Free web dialers (Call2Friends, Globfone)Yes: Call2Friends limits free calls per IP address, and Globfone's privacy policy lists IP addresses among the technical data and logs it processes [9][10]No: they see a caller ID
Messenger, 1:1 callYesYes: Meta says your IP is shared with the other device [4]
WhatsAppYesCan, unless Protect IP address in calls is on; group calls are always relayed [5]
TelegramYesCan: Telegram's 2017 announcement says calls go peer-to-peer whenever possible [11]

For calls to real numbers, the question is what the service learns and keeps; what the person you ring sees instead is in which number appears when you call from a browser.

How to run a WebRTC leak test

A leak test page does what a dialer does before a call: it opens a WebRTC connection, asks a STUN server which public address it sees, and prints every candidate next to the address it sees over plain HTTP. Run it in each browser you call from, first with your VPN off and then with it on.

  1. VPN off: open a leak test page, such as BrowserLeaks' WebRTC Leak Test. "Your Remote IP" at the top and "Public IP Address" under "Your WebRTC IP" should match.
  2. VPN on: reload. "Your Remote IP" should now show the VPN's address.
  3. If the WebRTC section still lists your provider's address, WebRTC is going around the tunnel [1].
  4. A local entry ending in .local means the address is hidden [3]; a raw one starting with 192.168. or 10. is not.
  5. If the page offers a microphone check, allow it and test again: a dialer needs microphone access, and that permission can unlock more addresses [1]. Remove the permission afterwards in site settings [12].

What changed in Chrome once the microphone was allowed

On I loaded a local test page in Chrome 156 on a Mac, with no STUN server, so no address went to an outside server. Without microphone permission, the page saw one host candidate named with a random string ending in .local [3]. With the microphone allowed, it received my real local IPv4 address.

That follows the standard, which allows the full address list only with consent, such as microphone permission [1]; WebKit, Safari's engine, described the same rule in 2017 [13]. So a dialer you allow can see your local address: a smaller risk than your public one [1].

Browser settings that limit WebRTC leaks

Brave documents a WebRTC IP setting for users. Google documents Chrome's controls for extensions and administrators, and Microsoft documents Edge's as an administrator policy. Firefox hides local addresses by default and keeps an off switch in about:config. One rule holds everywhere: switching WebRTC off also stops browser dialers, because WebRTC carries the call [14].

WebRTC address controls by browser (vendor documentation, read 1 November 2026)
BrowserControlWhat it changesEffect on browser calls
BraveWebRTC IP handling policy in privacy settings, per Brave's wiki (last edited 2018) [15]Default Public Interface Only exposes no local addresses [15]Media may fall back to a relay server [1]
ChromeExtensions can set a WebRTC IP handling policy [16]; administrators can set the WebRtcIPHandling policy [17]Depending on the value, stops using private addresses or sends media only through a proxy [17]Proxy-only values can push audio onto TCP, which the IETF says reduces quality [1]
EdgeAdministrator policy WebRtcLocalhostIpHandling [18]Two of its values stop exposing the local IP address [18]As in Chrome
FirefoxLocal addresses hidden by default [19]; media.peerconnection.enabled in about:config [20]Setting that preference to false switches WebRTC offBrowser dialers stop working
SafariBuilt-in rulePages without microphone or camera access get no host addresses, as WebKit described it in 2017 [13]None

What a VPN changes for browser calls

A VPN that sends all traffic through its tunnel, WebRTC included, shows the calling service the VPN's address instead of yours. A split-tunnel VPN may also let WebRTC find your provider's address [1], hence the leak test with the VPN on. A VPN has side effects on calling, too.

How to keep your IP address private on calls

Match the fix to the call. On calls to phone numbers, the person you ring doesn't get your IP, so pick a service you trust with it and check your VPN. On app-to-app calls, the other device may connect to yours directly, so use the app's relay setting where there is one.

  1. Browser calls: run the leak test with the VPN on; in Brave, choose Default Public Interface Only [15].
  2. Microphone: on dialers you use once, grant it with "Allow this time" [12]; in my Chrome check, a page holding that permission could see the local address.
  3. WhatsApp: turn on Protect IP address in calls. The help page covers Android, iOS and Mac, not the web, and warns that relayed calls may lose some quality [5].

Frequently asked questions

What is a WebRTC leak test?

A WebRTC leak test is a web page that runs the connection set-up a browser call uses and lists every IP address your browser offers, next to the address the page sees over ordinary HTTP. Your provider's address in that list while a VPN is on means WebRTC is going around the tunnel [1]; a random .local name means your local address is hidden [3].

Can the person I call from my browser see my IP address?

No, not on a call to a landline or mobile. The provider turns your browser audio into a phone call at its gateway [23], and the phone network passes on a calling number, not an IP address [2]. App-to-app calls differ: Messenger says 1:1 calls share your IP with the other person's device [4].

Does a VPN stop WebRTC leaks?

A VPN that routes all traffic, WebRTC included, through its tunnel does. A split-tunnel VPN may not, because WebRTC can discover your provider's public address beside the VPN's [1]. The only way to know is a leak test with the VPN connected, in each browser you use, repeated after updates.

Is a local IP address leak dangerous?

Less than a public address leak. A private address such as 192.168.1.20 doesn't say where you are, but the IETF calls private IPv4 addresses a fairly significant fingerprinting surface that can link normal and private-browsing sessions on one device [1]. Firefox hides local addresses by default [19], Safari hides them from pages without microphone or camera access [13], and so did Chrome in my check.

Does incognito or private browsing stop WebRTC leaks?

No. The IETF notes that a private address revealed through WebRTC can act as an identifier that tells a site a normal window and a private-browsing window are on the same device [1], so private mode alone does not hide it. Use the browser settings above, then run a leak test in a private window as well.

Do WebRTC leak extensions work?

Partly. In Chrome, an extension can set the browser's WebRTC IP handling policy, which Google describes as trading media performance against how much local address information is exposed [16]. Depending on the value, that hides local addresses or forces media through a proxy, which can move audio onto TCP and reduce quality [1]. Run a leak test after installing one to confirm the change.

How do I turn off WebRTC in Firefox?

Type about:config in the address bar, search for media.peerconnection.enabled and set it to false. Mozilla's source code describes that preference as the switch for RTCPeerConnection, and turning it off also removes pages' access to the microphone API [20]. Every browser dialer then stops working, so most callers are better off with Firefox's default, which already hides local addresses [19].

Ask an AI about this page

Each link opens the assistant in a new tab with this page's address in the question.

Sources

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