Your proxy is on and pages load, yet your browsing history can still leak via DNS. This is the part many people overlook.
Where it goes wrong
Before reaching a site, the system resolves the domain to an IP — that's the DNS query. If that query uses local plaintext DNS (say your ISP's), then even though the payload is encrypted through the proxy, the domains you looked up are still visible in the clear. That's a DNS leak.
SponsoredWhere does the subscription link come from?Our partner provider gives you 1 GB of high-speed Hong Kong data at signup — import it in one click.Get high-speed nodesHow to prevent it
- Remote resolution: resolve domains at the proxy server, not locally. Understand what the domain-resolution strategy (
IPIfNonMatch/AsIs) means in v2rayN routing. - FakeDNS: in TUN mode, FakeDNS is often used so the core handles resolution uniformly, reducing leaks.
- Encrypted DNS: use DoH / DoT (e.g.
https://1.1.1.1/dns-query) instead of plaintext DNS.
How to self-check
With the proxy on, visit a site like dnsleaktest and see whether the resolving DNS server's location sits at your proxy's exit rather than your local ISP.
With split routing, note: resolving domestic domains via local DNS is intentional (otherwise they resolve to overseas CDNs and slow down), not always a “leak”. What you really want to prevent is the foreign visits you mean to hide being seen by local DNS.