How to tell if your VPN is working
- Turn your VPN off and open this page. Note the IP address and network: that's your own internet provider.
- Turn the VPN on and press Run again.
- The IP address and network should now be the VPN server's, in the country you picked, with no leaks. The page compares the two runs for you.
On iPhone, a VPN icon in the status bar or Control Center shows the connection is on; why there's a VPN icon on your iPhone explains what it means. The icon says the tunnel is up. This test shows what websites actually see.
What a WebRTC leak is
WebRTC is how browsers make voice and video calls without a plugin. To connect a call, the browser asks a STUN server which public address it reaches the internet from, and the page can read the answer. If that request goes around your VPN, the answer is your real IP.
Browser extensions that call themselves VPNs are the usual cause: many only route web pages through their servers, and WebRTC's traffic goes straight out. A VPN app that tunnels the whole device carries WebRTC too. If the test shows a different address on the same network as your connection, that isn't a leak: mobile networks often hand one device several public addresses.
What an IPv6 leak is
Most connections now have two kinds of address, IPv4 and the newer IPv6. A VPN that only tunnels IPv4 leaves IPv6 traffic on your own provider's network, and any site your browser reaches over IPv6 sees your real address. The test asks for each kind separately and checks they come from the same network.
If yours leaks, look in your VPN's settings for IPv6 or leak protection, or ask its support. No IPv6 at all is fine: nothing can leak over it.
Why the time zone doesn't match
Your browser tells every site the time zone your device is set to. With a VPN server in another country, that time zone won't match your IP's location. It isn't a leak, since no address is exposed, but sites can see the two don't line up.
Does this test check for DNS leaks?
No. Every site name your device opens is first looked up by a DNS server, and a DNS leak means those lookups go to your provider instead of through the VPN. A web page can't see which server looked up its address, so DNS leak tests run their own DNS servers to watch the lookups. We'd rather say so than guess.
What happens when you run the test
The page asks GeoJS, ipinfo.io and ipwho.is for the address you connect from and where it's registered, ipify for your IPv4 and IPv6 addresses separately, and Cloudflare's STUN server for your WebRTC address. Each sees your IP, as any website does. Your result stays in this browser tab, so the next run can compare against it, and isn't sent to us. For a fuller look at your address, see what is my IP.
Questions
Is my VPN working?
Run this test with your VPN off, then turn the VPN on and press Run again. If your IP address and network change and no leak shows up, it's working. If the IP stays the same, the VPN isn't carrying this browser's traffic.
What is a WebRTC leak?
WebRTC lets browsers make calls and video chats directly. To set that up, the browser asks a server which public address it reaches the internet from. If that request goes around your VPN, any website can read your real IP through WebRTC, even though its pages load through the VPN.
Does this test check for DNS leaks?
No. A web page can't see which DNS server looked up its address. DNS leak tests run their own DNS servers and watch which resolvers ask them, which a page in your browser can't do alone.
Why does the test show the wrong city?
IP locations come from databases that map addresses to places, and they are often off by a city or more, especially for mobile networks and VPN servers. For a VPN, check that the country and the network match the server you picked.
Does this VPN test work on iPhone?
Yes, in Safari and other browsers. If you use iCloud Private Relay, Safari shows a Private Relay address instead of your own even with the VPN off, so turn it off for the first run if you want to see your real IP.
Is it safe to run?
Yes. The page asks a few public services for the address you connect from, and Cloudflare's STUN server for your WebRTC address. The result stays in this browser tab and isn't sent to us.