"I have internet" and "my lookups are private" are separate claims. A working tunnel with DNS still going to your ISP is a very common combination.
A three-minute self-test
- Open dnsleaktest.com or browserleaks.com/dns and run a test. If the servers it lists carry your broadband provider's name, you have a leak.
- Look at the domain column on the Connections page. Full domain names rather than bare IP addresses mean resolution is happening inside Clash, which is what you want - see The Connections Page.
- On the command line,
nslookup www.example.comqueries the adapter's DNS server and ignores the system proxy entirely, so this step only tells you something under TUN mode.
What is normal under fake-ip
In fake-ip mode the browser receives a reserved address such as 198.18.x.x, and the real lookup happens at the far end when the connection is established. Test sites may therefore list no DNS server at all, or list a resolver in the node's country. Both are expected - the mechanism is described in Custom DNS: fake-ip and redir-host.
Plugging the leak
- System proxy without TUN. Anything that is not a browser resolves names on its own. That is the design, not a bug - full coverage requires TUN.
dns.enableis false. The core is not handling DNS at all. Turn it on.- Your ISP's resolver is in nameserver. Replace it with an encrypted or public resolver rather than whatever DHCP handed you.
- The browser runs its own secure DNS. Chrome and Firefox can resolve over DoH regardless of system settings. If the test reports Cloudflare or Google and you never configured that, this is why.