Skip to content
IPOK

DNS Leak Test

When using a proxy / VPN, if DNS queries don't go through the tunnel they reveal the DNS servers you actually use (often your local ISP's), leaking your real location โ€” that's a DNS leak, one of the most overlooked privacy gaps.

This tool triggers a lookup inside your browser and lists the DNS servers that actually responded, with their location / ASN. If a resolver's region differs from your proxy exit, you may have a DNS leak.

Your public IP
8 sources cross-verifiedOpen methodologyFree ยท no loginNever reads your IP

Why DNS queries escape the proxy tunnel

A DNS leak happens because resolving a domain and loading the page travel on two separate paths. Your proxy / VPN stuffs HTTP/HTTPS traffic into the tunnel, but when the OS decides which DNS server to ask for example.com, it follows a different routing table. If that part isn't taken over by the proxy, the query leaves your machine in cleartext straight to your ISP's resolver โ€” and all the work hiding your IP is wasted.

The four most common leak paths: (1) Transparent DNS proxy โ€” some ISPs hijack port 53 and silently redirect your query to their own resolver even after you've manually set 1.1.1.1, disguising it so you can't tell; (2) IPv6 escape โ€” many proxies only tunnel IPv4 while the OS prefers IPv6, so IPv6 DNS goes straight out; (3) Windows' Teredo tunnel and Smart Multi-Homed Name Resolution fire queries at several resolvers at once and use whichever answers first; (4) split-tunnel / routing rules that put DNS on the direct-connect allowlist.

In short, "my VPN is on" does not mean "my DNS is on the VPN too." That's what makes a DNS leak so insidious โ€” your exit-IP check looks perfectly green while your resolver has already given you away.

What this test actually measures

This detector doesn't just read which DNS you configured โ€” it triggers a real lookup and works out who ultimately resolved it for you. It assigns your browser a one-time test ID and has you resolve a series of subdomains shaped like 1.<id>.bash.ws, 2.<id>.bash.ws; each subdomain can only be resolved once, and the authoritative server behind them records which recursive resolver came asking.

This is the key step. You think you're using 1.1.1.1, but if your ISP transparently hijacks DNS, the authoritative side records the ISP's resolver as the source instead. The detector then lists the DNS servers that actually responded for you, each with its location, ASN and operator type. The verdict is simple: compare those resolvers' locations against your proxy's exit region โ€” if even one sits in your real location instead of the proxy's, your DNS is leaking.

IPOK runs this alongside the WebRTC leak and exit-IP consistency checks on the same page, because these three are the pieces of "is my anonymity actually real." Only when the exit IP is right, WebRTC isn't exposing a real IP, and every DNS resolver is on the proxy's side does it count as clean. We don't log the IP you check โ€” results stay on your side.

A region-mismatched DNS is deadlier than it looks

Many people think a DNS leak is just "my ISP can see my traffic." For cross-border sellers, streaming unblockers and anyone fighting fraud systems, the real damage is in location detection. Modern CDNs and anti-fraud engines read the client subnet your DNS query carries via EDNS Client Subnet (ECS), combine it with the recursive resolver's location seen at the authoritative side, and infer where you "really are."

That produces a split signal: your exit IP says United States, but your DNS query reveals a recursive resolver back home and an ECS subnet that's also back home. For an unblocking service this reads as "suspicious location" โ€” you get greylisted, routed to the wrong region's edge node, or geo-blocked outright. For a risk engine, an IP-vs-DNS location conflict is itself a high-weight anomaly signal; the extra verification, downranking and blocks people hit at signup or checkout often trace back here while they're still busy auditing IP purity.

So testing for DNS leaks isn't privacy fussiness โ€” it's a live check on whether your proxy stack looks like a genuine local user to the other side. Exit IP, DNS resolver, timezone and language all have to point the same way; any one pointing the other way is a tell.

Once it leaks, how to plug it per platform

First pin down which path is leaking, then fix that specifically โ€” blindly changing DNS tends to fix one hole and open another. Universal first step: turn on "DNS over the tunnel / Remote DNS / DNS leak protection" in your proxy / VPN client so resolution enters the tunnel too, then re-run this test.

If it still leaks, IPv6 or the OS layer is usually grabbing the route: (1) When you don't need IPv6, disable it in system network settings (or enable "block IPv6 / route ::/0" in the client) to close the cleartext IPv6 path; (2) Windows users should additionally turn off Smart Multi-Homed Name Resolution and disable Teredo (netsh interface teredo set state disabled) so concurrent queries can't bypass the tunnel; (3) Check your proxy's split / routing rules and make sure DNS isn't on the direct-connect allowlist.

If you suspect transparent ISP hijacking (manually changed DNS still leaks), plain DNS changes get intercepted too โ€” only encrypted DNS gets around it. Switch your resolver to DoH / DoT (e.g. Cloudflare's https://1.1.1.1/dns-query, Google's 8.8.8.8) so port-53 hijacking has nothing to grab. Re-test on this page after every change until every listed resolver sits on the proxy's exit side โ€” that's when it's truly plugged.

FAQ

Why are DNS leaks bad?

Even with your IP hidden by a proxy, a DNS leak can expose your real ISP and rough location, breaking anonymity and enabling region detection.

How do I fix a leak?

Enable 'DNS over the tunnel / DNS leak protection' in your proxy/VPN client, or set your system DNS to a trusted resolver (e.g. 1.1.1.1), then re-test.

I manually set my DNS to 1.1.1.1 โ€” why does it still test as leaking?

Most likely your ISP is transparently hijacking it โ€” intercepting cleartext DNS on port 53 and force-redirecting it to its own resolver, disguised so it looks like your setting took effect. Changing plain DNS won't help; switch to encrypted DNS (DoH / DoT, e.g. https://1.1.1.1/dns-query) to bypass the hijack, then re-test on this page.

If I use encrypted DNS (DoH/DoT), am I guaranteed leak-free?

Not necessarily. DoH/DoT stops your ISP from snooping or hijacking in transit, but if your proxy doesn't tunnel resolution, or the OS prefers IPv6 / Teredo, encrypted queries can still leave outside the tunnel โ€” only now the one watching is the encrypted DNS provider you chose. Anonymity still hinges on whether the resolver's location sits on your proxy's exit side, which is exactly what this page measures.

The result lists several DNS servers โ€” is that a leak?

A high count isn't a leak by itself โ€” many public resolvers (Cloudflare, Google) are load-balanced clusters in the same location. The test is region, not count: compare each listed resolver's location against your proxy exit. All on the same side is fine; even one in your real location is a leak.

Can my phone leak DNS over a proxy too?

Yes. Phones have the same issues: IPv6 preference, Private DNS (Android's "Private DNS") bypassing the proxy, and some apps shipping their own resolution logic. On Android, enable "DNS over the tunnel" in your proxy client and turn off system Private DNS; on iOS use a profile / client that forces DNS into the tunnel โ€” then re-test in your phone's browser on this page.

Related checks