Is your connection proxied?
Your TCP connection and your browser should be the same machine. This page times both, and checks where WebRTC and your clock say you are. Through a residential, corporate or relay proxy, they disagree.
Timing 15 round trips to your browser. Takes about 3 seconds.
WebRTC public address vs this page- Time zone: IP vs browser-
Measured at Cloudflare edge-
How does it work?
The round-trip gap. Cloudflare's edge measures the TCP round trip to whoever opened your connection, a few times over. Then it sends your browser 15 small messages, times the replies, and compares the fastest of each.
Direct, both clocks measure the same path. Through a proxy, TCP ends at the proxy, while the echo travels on to your real browser. The gap is the part of the path the site can't see.
A browser can slow an echo down. It can't speed one up, so the gap can't be faked away.
Mobile networks speed up and slow down from one second to the next, which can fake a small gap. So a borderline gap is measured again on a fresh connection, up to 3 times, and the smallest counts. A real proxy's detour shows up every time.
WebRTC. Your browser asks a public STUN server which address it sees. Most proxies only carry web traffic, so WebRTC goes around them and shows a different address. So do many mobile and tethered connections, which is why this row informs but doesn't decide.
Time zone. Your IP address places you in one time zone, your browser's clock in another. A mismatch is a hint, not proof: travellers and VPN users see it too.
What does the result mean?
- Direct: the gap is under 12 ms. Nothing sits between your browser and the network.
- Unsure: a gap of 12 to 25 ms, usually a busy Wi-Fi or mobile network. Run it again.
- Proxied: a gap over 25 ms. A residential proxy, a corporate web proxy, or a privacy relay ends your TCP connection early.
A VPN usually reads as direct: it forwards packets instead of ending your TCP connection, and carries WebRTC too.
Where does this come from?
I measured it on 798 residential proxy sessions: the gap caught all 798, and none of 50 direct visits. Read the write-up.
Want the check on your own server? It's open source: pip install rttgap, on GitHub.
Your results never leave this page: nothing about the check is stored or logged. The site counts page views with Google Analytics. Visitors in the EU, UK and Switzerland are asked first, and browser privacy signals (Global Privacy Control, Do Not Track) switch it off. Your address is only compared in your own browser.