Back to blog

What Is a WebRTC Leak? How to Stop It in Any Browser (2026)

A WebRTC leak lets websites see your real IP even with a VPN or proxy on. Here’s why it happens, how to test for it in two minutes, and the exact settings that stop it in Chrome, Edge, Firefox, Brave and Safari.

Author
ProxyHorizon Team
Published
October 21, 2026
10 min read
Expert-Verified
What Is a WebRTC Leak? How to Stop It in Any Browser (2026)

You connect your VPN, check your IP, and see a server in another country. Job done. Then a test page shows your real home IP sitting right underneath it.

That’s a WebRTC leak. Your encrypted tunnel didn’t break. Your browser simply found another way to tell a website who you are.

This guide explains what WebRTC is, why it can expose your IP behind a VPN or proxy, how to test for a leak in two minutes, and how to stop it in Chrome, Edge, Firefox, Brave and Safari.

TL;DR
  • A WebRTC leak is when your browser reveals an IP you meant to hide, through the feature that powers in-browser calls.
  • Full-tunnel VPNs usually prevent it. Split tunneling, VPN extensions and app-level proxies are where leaks happen.
  • Browsers already mask private IPs with .local names, but your public IP can still slip out.
  • Test with a WebRTC leak page, then set Brave’s policy, Firefox’s about:config prefs or Google’s Network Limiter in Chrome.

What Is a WebRTC Leak?

WebRTC (Web Real-Time Communication) is the browser feature behind video calls, voice chat and file sharing that run inside a web page, with no plugin. Google Meet, Discord in the browser and many support chat widgets use it.

To connect two people directly, WebRTC has to learn which IP addresses each device can be reached on. A WebRTC leak happens when the browser shares an address you meant to hide, such as your real public IP behind a VPN, or the private IP of your device on your home network.

The key point: this isn’t a bug in a single browser. It comes from how peer-to-peer connections work, and every major browser has had to add limits on top of it.

How Does WebRTC Expose Your IP Address?

WebRTC uses a process called ICE (Interactive Connectivity Establishment) to find the best route between two devices. The IETF’s RFC 8828, the standard on WebRTC IP handling, describes the problem plainly (checked October 21, 2026).

ICE gathers a list of “candidate” addresses using STUN servers, which tell your browser what public IP it appears to have, and TURN servers, which relay traffic when a direct route fails. These candidates are then handed to the web page so it can pass them to the other side.

That handoff is the leak. With a normal web request, a site only sees one IP: the one the request came from. With WebRTC, a page can read every candidate your browser collected.

RFC 8828 sorts the extra information into three cases:

  1. Split-tunnel VPNs. If your VPN only routes some traffic, WebRTC can discover both the VPN’s IP and the ISP address the VPN runs over. The RFC calls this the most significant concern, because many people use a VPN to stay anonymous.
  2. Private IPs behind your router. Local addresses such as 192.168.x.x don’t reveal your location, but they add to your browser fingerprint and can link a private window to a normal one on the same device.
  3. App-level proxies. If you set a proxy in your browser but your machine can still reach the internet directly, WebRTC’s STUN checks can skip the proxy and reveal your real public IP.
Diagram comparing normal web traffic passing through a VPN tunnel with a WebRTC STUN request going around it and exposing the real IP
Your page loads go through the tunnel. A WebRTC STUN request can take a different path and report a different IP.

Does a VPN Stop WebRTC Leaks?

Usually, yes, if the VPN tunnels all of your traffic. RFC 8828’s first principle is that WebRTC should follow the same route as your normal web traffic by default. When everything goes through the tunnel, the STUN server just sees the VPN server’s IP, which is what you want.

Leaks show up in a few specific setups:

  • Split tunneling is on, so the browser or its WebRTC traffic can use your regular connection.
  • You use a browser-only VPN extension, which works like a proxy for page traffic and may not control WebRTC at all.
  • A site has camera or microphone permission, which unlocks more address gathering in Chrome (more on that below).
  • The VPN drops for a moment and your device falls back to its normal connection.

So a VPN app with full-device tunneling is the strongest baseline. If you want to understand what the tunnel actually covers, our guide to how a VPN tunnel works walks through it, and does a VPN hide your location covers the other ways your location can slip.

What About Proxies and Antidetect Browsers?

Proxies are where WebRTC causes the most surprises. Most proxies you set up in a browser are HTTP or SOCKS proxies, and they only see the traffic the browser sends to them.

RFC 8828 points out that HTTP proxies and most SOCKS proxies don’t support UDP, which is the transport WebRTC prefers. By default, WebRTC is not sent through a proxy at all, because media over a TCP proxy performs badly. The standard defines a stricter “force proxy” mode, but it has to be switched on.

For scraping and multi-account work, this matters a lot. A site can load a tiny script, gather WebRTC candidates and compare them to the IP your request arrived from. If they don’t match, your proxy is exposed.

That’s why antidetect browsers ship WebRTC controls. Most let you replace the WebRTC IP with your proxy IP or block it per profile. Our step-by-step guide on pairing proxies with an antidetect browser shows where those settings live and which mode to pick.

How Browsers Already Limit WebRTC Leaks

Older articles on this topic describe a free-for-all that no longer exists. Browsers have tightened things in two big steps.

Default route only, unless you grant camera or mic. Starting with Chrome 48, Google’s WebRTC release notes said only apps with microphone or camera permission could enumerate all network interfaces. Others get candidates from the default network path, so a VPN user would only expose the VPN’s addresses.

mDNS hides private IPs. Chrome then began masking private IPs with random hostnames ending in .local, rolling out fully with Chrome 76 in August 2019, according to the Chrome team’s announcement. WebKit, the engine behind Safari, switched mDNS candidates on by default in January 2019, per WebKit changeset 239936.

Two catches remain. Both protections relax for sites you’ve given camera or microphone access to. And mDNS hides your private address only. Your public IP from STUN is still visible, which is exactly the address that matters when a proxy or split tunnel doesn’t cover WebRTC.

How to Test for a WebRTC Leak

Testing takes two minutes, and you should do it any time you change your VPN, proxy or browser setup.

  1. Turn your VPN or proxy off and note your real public IP with our IP address checker.
  2. Turn the VPN or proxy back on and confirm your visible IP has changed.
  3. Open a WebRTC test page such as BrowserLeaks’ WebRTC test, or the official Trickle ICE sample from the WebRTC project.
  4. Look at the public addresses listed. On the Trickle ICE page, click Gather candidates and check the entries of type srflx, which is the public IP a STUN server saw.
  5. If your real IP from step 1 appears anywhere, you have a leak.

A .local hostname in the results is normal. That’s the mDNS mask doing its job, not a leak.

Screenshot of the WebRTC samples Trickle ICE page with the note about candidates from a single interface highlighted
The WebRTC project’s Trickle ICE page lists every candidate your browser gathers. Note the line about single-interface gathering without camera or mic permission.

Run the test a second time with nothing else open. If you’ve ever granted the test site camera or microphone access, remove that permission first, since it changes what the browser will reveal.

How to Stop a WebRTC Leak in Any Browser

Pick the fix that matches your browser. Each one trades a little call quality for privacy, so only go as strict as you need.

Mind map of WebRTC leak fixes by browser covering Chrome, Edge, Firefox, Brave and Safari
Each browser handles WebRTC privacy a little differently. Brave and Firefox give you the most built-in control.

1Chrome

Chrome has no WebRTC switch in its normal settings. Google’s own fix is the WebRTC Network Limiter extension, published by Google on the Chrome Web Store.

It blocks private IPs and any public IP on an interface that isn’t used for web traffic, such as your ISP address when you browse through a VPN. Its Options page can also require WebRTC to go through your configured proxy, which in practice turns off UDP because most proxies can’t carry it.

Under the hood, the extension sets Chrome’s webRTCIPHandlingPolicy, documented in the chrome.privacy API. The values run from default_public_and_private_interfaces to default_public_interface_only to the strictest, disable_non_proxied_udp.

2Microsoft Edge

Edge is built on the same Chromium engine, so the same policy applies. Edge can install extensions from the Chrome Web Store, which lets you use the same WebRTC Network Limiter extension. Then run the leak test again to confirm it took effect.

3Firefox

Firefox gives you the most granular control through about:config. Mozilla’s WebRTC privacy page documents these preferences:

PreferenceSet toWhat it does
media.peerconnection.ice.default_address_onlytrueUses only the interface with the default route
media.peerconnection.ice.no_hosttrueRemoves all local (private) addresses
media.peerconnection.ice.relay_onlytrueOnly relay (TURN) candidates, hiding your local and public IPs from the page
media.peerconnection.enabledfalseTurns off peer connections completely

For most people, setting both default_address_only and no_host to true is the sweet spot: no private IPs, no extra interfaces, and calls still work. MDN notes that disabling peer connections doesn’t affect camera and mic access, but it will break browser-based calls.

4Brave

Brave puts the control right in its settings. Open brave://settings/privacy and find WebRTC IP Handling Policy. Brave’s help center lists four options:

  • Default: WebRTC may enumerate all interfaces.
  • Default Public And Private Interfaces: default route only, plus the matching private address.
  • Default Public Interface Only: default route only, no local addresses.
  • Disable Non-Proxied UDP: WebRTC uses TCP unless your proxy supports UDP, with no local addresses exposed.

Pick Disable Non-Proxied UDP if you browse through a proxy, or Default Public Interface Only if you use a full-tunnel VPN and still want smooth calls.

5Safari

Safari doesn’t offer a WebRTC IP policy in its normal settings. It relies on the protections built into WebKit, including mDNS masking of private addresses. Your best defense there is a full-tunnel VPN app rather than a browser extension, and being careful about which sites you give camera or microphone access to.

Should You Just Disable WebRTC?

Only if you never make calls in your browser. Turning WebRTC off removes the leak completely, but it also breaks browser video calls, screen sharing in some tools and peer-to-peer file transfers.

RFC 8828 itself argues against blunt fixes, saying solutions that disable WebRTC are “undesirable” because peer-to-peer connections have their own privacy benefits. The middle settings exist for that reason: they hide what you care about while keeping calls working.

A sensible setup for most readers looks like this:

  • Use a VPN app that tunnels your whole device, with split tunneling off for your browser. Our VPN directory lists options with their features.
  • Set your browser to the “default public interface only” level, or Firefox’s no_host plus default_address_only.
  • For proxy work, use an antidetect browser or the strictest “disable non-proxied UDP” mode.
  • Re-test after every browser update or VPN change.

WebRTC Leak vs DNS Leak

These two get mixed up, but they expose different things. A WebRTC leak reveals your IP address to the website you’re on, through the browser. A DNS leak reveals which sites you look up to your ISP’s DNS servers, through your operating system.

You can have one without the other, so test for both. Our guide on what a DNS leak is and how to fix it covers the second half, and can websites see your IP address rounds out what a site can learn about you.

Frequently Asked Questions

It can, but only in certain setups. A VPN app that tunnels all device traffic normally makes WebRTC report the VPN server’s IP. Leaks usually come from split tunneling, browser-only VPN extensions, a dropped connection, or sites you’ve granted camera or microphone access.
No. Private browsing stops your history and cookies from being saved, but WebRTC still runs in private windows. A site can gather WebRTC candidates in an incognito tab just as easily as in a normal one. You need a WebRTC setting, an extension or a full-tunnel VPN to control what it reveals.
Not by default. Most browser proxies are HTTP or SOCKS proxies that don’t carry UDP, and WebRTC normally skips the proxy. Use a strict policy such as disable non-proxied UDP, or an antidetect browser that replaces the WebRTC IP with your proxy IP.
No. Modern browsers replace your private IP with a random hostname ending in .local, using a technique called mDNS. Seeing one means the protection is working. Only a real public IP that matches your home connection counts as a leak.
Yes, it won’t harm your browser, but it will break video calls, voice chat and some file sharing that run inside web pages. Most people are better off with a middle setting that hides extra addresses while keeping calls working.
Yes, the same rules apply on phones. Brave on Android has the same WebRTC IP Handling Policy setting as desktop. On other mobile browsers, a VPN app that tunnels all traffic is the most reliable protection, so test with your VPN on.

The Bottom Line

A WebRTC leak isn’t a broken VPN. It’s your browser sharing connection details for calls, sometimes through a path your VPN or proxy doesn’t cover.

Modern browsers already hide your private IP by default. The real risk is your public IP slipping out through split tunneling, a browser-only VPN or an app-level proxy. Test once, set the right WebRTC policy for your browser, and re-test whenever your setup changes.

If you’re choosing a VPN to keep everything inside the tunnel, line up a few options in our comparison tool and check their features side by side.