Check my connection

Guides · Your IP & privacy

What is a WebRTC leak, and how do I stop it?

You turn on your VPN, check your IP, and it shows the VPN's address. Good. But a page can still ask your browser a different question, through WebRTC, and get a different answer. That difference is the leak.

What WebRTC does

WebRTC is the browser feature behind video calls and screen sharing in tools like Google Meet and Microsoft Teams on the web. To connect two people directly, each browser has to work out which addresses it can be reached on: its address on the local network, and the public address the internet sees. It finds the public one by asking a small public server, called a STUN server, “what address do you see me coming from?”

A web page can start this process without asking permission and without using your camera or microphone. It just reads the answers.

How the leak happens

How a WebRTC leak happens Top path: the browser's normal web traffic goes through a browser-only VPN or proxy, so the website sees the VPN's address, 203.0.113.80. Bottom path: WebRTC's question to a STUN server leaves the device directly, outside the proxy, so the answer contains the real home address, 198.51.100.23, which the web page can read. Your browser at home Browser VPN or proxy Website sees 203.0.113.80 STUN server sees 198.51.100.23 web traffic WebRTC goes around the proxy
The page loads through the proxy, but WebRTC's address check doesn't. Documentation addresses stand in for real ones.

Whether this happens depends on what kind of VPN you use:

What about local addresses like 192.168.1.20? Older browsers handed those to any page too. Current Chrome, Edge, Firefox and Safari hide them behind random names ending in .local unless you've allowed the page to use your camera or microphone, so that part of the old problem is mostly gone.

Test it

The homepage of iplover runs the test in your browser: it asks Cloudflare's STUN server (the same company that hosts the site), collects every address WebRTC reports, ignores the random .local names, and compares the rest with the public address our server saw for your page request. Three outcomes are possible:

ResultWhat it meansWhat to do
No leakWebRTC reported nothing beyond the address websites already seeNothing.
Leak found, listing an addressWebRTC can reveal an address different from your public oneIf you're on a VPN and the listed address is your real one, fix it below. If you aren't on a VPN, it may be your IPv6 address or a second connection; that's not a privacy leak.
WebRTC isn't availableThe browser blocks it (or it's switched off)Nothing: nothing can leak through it.

Run it twice, with the VPN on and off. If the address listed with the VPN on matches the one shown with it off, that's your real address leaking.

Stop it, browser by browser

After any change, run the test again to make sure it did what you expected.

What a WebRTC leak can't do

The leak reveals an address, the same thing every website sees when you're not on a VPN: roughly where you are and which provider you use. It doesn't expose your files, your passwords or your browsing history. It matters if the point of your VPN is that sites mustn't learn your address, and hardly at all if you use a VPN only to protect public Wi-Fi.

Sources

Official documents we used to check the facts in this guide.