Safety
How to Stop WebRTC IP Leaks in Chrome
Safety
How to Stop WebRTC IP Leaks in Chrome
On this page
- The short answer
- What is a WebRTC IP leak, and does Chrome support WebRTC?
- How do you test Chrome for a WebRTC leak?
- What does the WebRTC Control extension do?
- How do you install and set up a WebRTC control extension?
- Do you still need WebRTC protection if you use a VPN?
- Which VPN and proxy extensions pair with WebRTC protection?
- Can you block WebRTC leaks in Chrome without an extension?
- What breaks when you restrict WebRTC, and how do you fix it?
- Does WebRTC protection work on Android, Windows 10 and Chromebooks?
- Frequently asked
The short answer
Chrome has no WebRTC switch in Settings, so use a WebRTC control extension such as WebRTC Control or WebRTC Leak Shield, which change Chrome's WebRTC IP handling policy so calls can't route around your VPN or proxy. Run a leak test before and after: if your real public IP disappears, the fix works.
What is a WebRTC IP leak, and does Chrome support WebRTC?
Yes, Chrome supports WebRTC natively and keeps it switched on for every site. A leak happens when a page uses WebRTC to discover a network address you meant to hide, usually the public IP your VPN or proxy extension was supposed to mask.
WebRTC is the open standard behind browser video calls, screen sharing and peer-to-peer file transfer. It is free and open source, which answers the common question of whether Google WebRTC is free: no licence, no account, and every Chromium browser ships it. To connect two browsers directly, WebRTC gathers so-called ICE candidates, a list of addresses where your device can be reached.
Some of those candidates come from asking a STUN server what your public address looks like from outside. That request travels over UDP. A browser proxy or proxy-based VPN extension typically only reroutes normal web traffic, so the UDP request can leave through your regular connection and report your real IP back to the page's JavaScript.
Local addresses (the 192.168.x.x kind) are less of a worry than older guides suggest. Current Chrome hides them behind random .local names by default, so the address that matters is your public one. That is the leak a WebRTC control extension for Chrome is built to stop.
How do you test Chrome for a WebRTC leak?
Compare the IP a leak test finds with and without your VPN connected. If the real address shows up while the VPN is on, you have a leak.
- Disconnect any VPN or proxy and open our WebRTC leak test. Note the public IP it reports; this is your real address.
- Connect your VPN (app or extension) and reload the test page with
Ctrl+Shift+Ron Windows, ChromeOS and Linux orCmd+Shift+Ron Mac. - Look at the public (sometimes labelled srflx) candidates. If any of them matches the real IP from step 1, WebRTC is leaking.
- Install or switch on your WebRTC fix, then close and reopen the tab. Existing pages can keep the old setting until reloaded.
- Run the test a third time. A working fix shows only your VPN's IP, or no public candidate at all.
- Repeat in an Incognito window (
Ctrl+Shift+NorCmd+Shift+N) if you browse privately, because extensions are off there by default.
Test the setup you actually use
A clean result on home Wi-Fi does not guarantee a clean result on a hotel or office network, where routing differs. Retest after changing networks, VPN servers or browser profiles.
What does the WebRTC Control extension do?
WebRTC Control is a toolbar toggle that restricts or restores WebRTC's network behaviour. Its Chrome Web Store listing describes it as a way to have control over WebRTC (disable or enable) and protect your IP address. WebRTC Leak Shield, a similar tool, says it disables WebRTC to prevent IP leaks.
Neither extension can delete WebRTC from Chrome. What Chrome lets extensions change is the WebRTC IP handling policy, a setting exposed through the chrome.privacy API. The toggle picks a stricter value, and turning it off restores the default.
Chrome's IP handling policy has four values. Most leak tools use the strictest one:
- default
- The unset value: WebRTC uses all available network interfaces. Best call quality, highest leak risk behind a proxy.
- default_public_and_private_interfaces
- Chrome describes this as using all public and private interfaces. It does not stop a page learning your real public IP behind a proxy.
- default_public_interface_only
- Chrome describes this as using public interfaces but not private ones. It narrows what WebRTC exposes, though behind a proxy the strictest value is the safer choice.
- disable_non_proxied_udp
- WebRTC uses either UDP SOCKS proxying or falls back to TCP proxying. This is the strictest value and the one aimed at proxy-style setups.
How do you install and set up a WebRTC control extension?
Setup takes about a minute: install it, pin it and retest. The one thing to get right is making sure no other extension is fighting it for the same setting.
- Open the WebRTC Control listing or the WebRTC Leak Shield listing and check that the extension ID in the address bar matches the one linked here.
- Click
Add to Chrome, read the permission prompt, then confirm withAdd extension. - Click the puzzle-piece
Extensionsicon next to the address bar and pick the pin icon so the toggle stays visible. - Click the extension icon to turn protection on. The icon changes colour or state to show it is active.
- For private windows, go to
chrome://extensions, open the extension'sDetailsand switch onAllow in Incognito. - Reload open tabs and repeat the leak test.
Only one extension can own the setting
When two extensions try to set the WebRTC policy, Chrome documents that the extension installed most recently takes precedence, so the older one stops controlling the setting. If your VPN extension has its own WebRTC option, use that or the standalone toggle, not both.
Before installing, check what the tool asks for. A single-purpose WebRTC tool mainly needs Chrome's privacy-settings access, which triggers a warning about changing privacy-related settings. Our permissions guide explains how to read each warning and what broader access such as reading every site would mean.
Do you still need WebRTC protection if you use a VPN?
It depends on the type of VPN. A system-wide VPN app tunnels UDP too, so WebRTC usually reports the VPN's address. A browser VPN extension typically works as a proxy and needs WebRTC restricted to be leak-proof.
| Setup | What it routes | WebRTC leak risk | What to do |
|---|---|---|---|
| System VPN app (Windows, Mac, ChromeOS, Android) | All device traffic, including UDP | Low, unless the tunnel drops | Use its kill switch; test once after each reconnect |
| VPN browser extension | Chrome's web traffic via a proxy | High without a WebRTC setting | Turn on its WebRTC option or add a standalone toggle |
| Manual proxy (Proxy Helper, system proxy) | HTTP and HTTPS through the proxy | High | Set WebRTC to disable_non_proxied_udp |
| VPN app plus VPN extension | Depends which one is active | Confusing to diagnose | Pick one; running both makes test results hard to read |
| No VPN | Everything direct | Not a leak: sites see your IP anyway | WebRTC controls add little here |
That last row matters. If you are not hiding your IP in the first place, WebRTC reveals nothing a normal page request doesn't already show, so the extension adds little. Its value is making sure a proxy or extension VPN does what you think it does.
On a Chromebook, where Android and Linux apps sit alongside the browser, the choice between app and extension has extra quirks. Our guide to the best VPN extension for Chromebook walks through them.
Which VPN and proxy extensions pair with WebRTC protection?
Use a VPN extension to change your IP, then make sure WebRTC can't route around it. These picks come from our VPN use-case hub; whichever you choose, run the leak test with it connected before you trust it.
VPN and proxy extensions to test with a WebRTC fix
-
Surfshark VPNFreemium
Security & Privacy
Masks your location from the toolbar and suits people who already pay for Surfshark. Catch: the full service is a subscription, and you should confirm its WebRTC option is enabled rather than assume it.
-
Browsec VPNFreemium
Security & Privacy
Free tier with no signup, handy for a quick IP change. Catch: the free tier limits servers, and as a proxy-style extension it needs WebRTC restricted to pass a leak test.
-
DotVPNFreemium
Security & Privacy
One-click on and off switch for private browsing. Catch: freemium, with better locations reserved for paid plans; check its settings for a WebRTC control.
-
Proton VPNFreemium
Security & Privacy
Proton's browser VPN proxy with a free tier. A browser proxy covers Chrome's own traffic, so keep a WebRTC setting in place as well.
-
Proxy HelperFree
Developer Tools
Sets Chrome's proxy configuration from the toolbar for people who run their own proxy. Catch: it only changes proxy settings, so WebRTC protection has to come from elsewhere.
We don't rank VPNs on speed or server counts here, because those change constantly. Our methodology explains what we do check before listing an extension.
Can you block WebRTC leaks in Chrome without an extension?
Yes, through a Chrome policy called WebRtcIPHandling, documented for administrators but usable on a personal computer. It accepts the same four values as the extension setting, and a policy generally takes precedence over an extension.
On a Mac, run this in Terminal, then restart Chrome:
defaults write com.google.Chrome WebRtcIPHandling -string "disable_non_proxied_udp"On Windows, create a string value named WebRtcIPHandling with the data disable_non_proxied_udp under HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome in the Registry Editor. On Linux, put the same key in a JSON file under /etc/opt/chrome/policies/managed/. In every case, open chrome://policy and click Reload policies to confirm it applied. The full reference is on Chrome Enterprise's policy list.
Your browser will say it is managed
Setting any policy makes Chrome show a 'Managed by your organization' note in the menu. That is expected. Remove the value and reload policies to undo it.
Other browsers differ. Firefox's extension API includes a setting that turns its WebRTC peer connections off entirely, and Edge can install Chrome Web Store extensions, so the same toggles work there.
What breaks when you restrict WebRTC, and how do you fix it?
Browser-based calls are the main casualty. Google Meet, Discord voice, WhatsApp Web calls, Zoom's web client and browser file-sharing tools all rely on WebRTC, and the strict setting can make them slower, lower quality or unable to connect.
- Call connects but video stutters: with
disable_non_proxied_udp, media may fall back to relayed TCP routes. Pause the toggle for the call if privacy isn't needed then. - Call never connects: some services need direct UDP. Turn protection off, join, and turn it back on afterwards.
- Toggle seems to do nothing: another extension (often a VPN) controls the policy. Check
chrome://extensionsand disable the duplicate. - Leak test still shows your IP: reload the tab, confirm the VPN is connected, and look at
chrome://policyfor a policy overriding extensions. - Protection missing in private windows: enable
Allow in Incognitofor the extension. - Works at home, leaks at work: a managed work browser can set its own WebRtcIPHandling policy that beats your extension. Ask IT.
Most WebRTC toggles work across the whole browser, not per site. If you take many calls, a separate Chrome profile for calls with protection off, and a private profile with it on, avoids constant switching.
Does WebRTC protection work on Android, Windows 10 and Chromebooks?
On desktop, yes: the same extension works in Chrome on Windows 10 and 11, macOS, Linux and ChromeOS. Chrome on Android and iPhone does not run extensions at all, so a WebRTC control extension for Chrome on Android isn't possible.
On Android, the practical option is a system-wide VPN app, which tunnels WebRTC traffic too. On iPhone and iPad, every browser uses Apple's engine, so a device-level VPN is the practical route. On a Chromebook, the desktop extension works normally in the browser, but Android apps on the same device are unaffected by it.
Fixing WebRTC closes one hole, not every tracking route. Sites can still fingerprint your browser and follow you with third-party trackers, which is a separate problem with separate tools.
Complements, not replacements
-
DisconnectFree
Security & Privacy
Blocks hidden trackers that follow you across sites, which a WebRTC toggle does not touch. Catch: it does nothing about WebRTC itself, so keep both.
Extensions mentioned in this guide
- Surfshark VPNMask your location and browse privately with a fast, easy-to-use VPN extension.
- Browsec VPNShield your IP and browse privately with a free, no-signup VPN extension.
- DotVPNSwitch on private, fast VPN browsing and unblock sites in a single click.
- Proton VPNEncrypt your browsing and hide your IP with one click, from a trusted privacy company.
- Proxy HelperQuickly set and control your Chrome proxy configuration from the toolbar
- DisconnectStops hidden trackers from following your activity across the web
Frequently asked
What is the WebRTC Control extension and what does it do?
WebRTC Control is a browser extension that lets you disable or enable WebRTC's network behaviour to protect your IP address. In Chrome it works by changing the WebRTC IP handling policy, so pages can't find your real IP by routing around a proxy or VPN extension.
Does Chrome support WebRTC?
Yes. WebRTC is built into Chrome on every platform and enabled by default. Chrome has no on/off switch in Settings, which is why people use an extension or the WebRtcIPHandling policy to restrict it.
Is Google WebRTC free?
Yes. WebRTC is a free, open-source project and an open web standard, with no licence fee or account needed. Chrome, Edge, Firefox and Safari all include it.
Is there a WebRTC Control extension for Chrome on Android?
No. Chrome for Android does not support extensions. Use a system-wide VPN app, which tunnels WebRTC traffic along with everything else.
Does WebRTC Control work on Windows 10?
Yes. Desktop Chrome extensions work the same way on Windows 10 and 11, macOS, Linux and ChromeOS. Install it from the Chrome Web Store and pin it to the toolbar.
What is the difference between WebRTC Control and WebRTC Leak Shield?
Both aim to stop WebRTC from exposing your IP by changing the same Chrome setting. WebRTC Control describes itself as letting you disable or enable WebRTC, while WebRTC Leak Shield describes itself as disabling WebRTC to prevent IP leaks; install only one.
Can a VPN extension alone stop WebRTC leaks?
Only if it restricts WebRTC itself. Many VPN extensions act as proxies for web traffic, and WebRTC's UDP requests can bypass them, so check for a WebRTC option and confirm with a leak test.
Will disabling WebRTC break Google Meet or Discord?
It can. Restricting WebRTC may lower call quality or stop calls from connecting, so switch protection off for the call and back on afterwards.
Does Incognito mode stop WebRTC leaks?
No. Incognito doesn't change WebRTC, and extensions are disabled there unless you enable Allow in Incognito on the extension's Details page.
Can websites see my local IP address through WebRTC in Chrome?
Usually not anymore. Current Chrome replaces local IPs with random .local names by default, so the bigger risk is your real public IP bypassing a proxy.
How do I check if my WebRTC fix is working?
Connect your VPN, open a WebRTC leak test, and compare the public IP it shows with your real IP. If only the VPN address appears, the fix works.
Why does my WebRTC extension say the setting is controlled by another extension?
Chrome lets only one extension control the WebRTC policy at a time, and the most recently installed one wins. Disable the other extension (often a VPN) or use its built-in WebRTC option instead.