Google Chrome ignores other DNS servers in system settings?

[SOLVED] Thanks to u/polynomialspace and other comments, problem is solved. Google Chrome indeed prioritizes 8.8.8.8 over our private DNS server, but it’s for a solid reason: DNS-over-HTTPS. Not just 8.8.8.8, some public DNS servers like 1.1.1.1 are also in the list. Disable “Use Secure DNS” option in Security section will stop Google Chrome from prioritizing these DoH-capable servers.

====

Google Chrome 92.0.4515.159 on macOS (X86-64).

My office has self assigned FQDN for each internal server, and they can only be resolved using our internal DNS servers. I only access internal servers once or twice a week, and the DNS servers are unstable under high loading, so I added 8.8.8.8 after two internal DNS servers, in system network settings.

This morning, I found that Google Chrome is unable to open URL of our internal server, while Safari, cURL and Postman works normally. Further diagnosing shows that it can connect normally if I replace domain name with IP address. Then I tried to remove 8.8.8.8 from DNS server list, and Google Chrome can work as expected.

So Google Chrome:

  1. will ignore system default settings when resolving domain names; and
  2. will ignore user specified DNS server order if 8.8.8.8 is in the list; and
  3. will not try again using other DNS server in the list if 8.8.8.8 failed.

I’m not sure whether it’s intended or a design miss. This had never happened before. Is there any configurations to tell Google Chrome to honor user specified DNS server settings ? I don’t really want to remove public DNS server from the list.

If the problem persists (just like in my case), you have to disable some flags:
Navigate to edge://flags/ or chrome://flags/.
Disable #use-dns-https-svcb-alpn.
Disable #enable-async-dns (Chrome only).
Disable #encrypted-client-hello (Chrome only).

Source: Force Chrome and Edge to use local DNS - Bug Driven Development

Are you talking about the DNS settings for your OS or Chrome’s DNS settings? Chrome will use its settings over your OS’s, just as your OS settings come before your router’s DNS settings.

I mean macOS Network settings. No we don’t use DHCP but fixed private IP, so the DNS are set manually too.

Google Chrome will use system DNS settings as you suggested, but it doesn’t use default system APIs to resolve hostname. And that’s the source of problem.

Yes that’s the actual cause of problem. Thanks a lot.

Sorry, I’m suggesting you have Secure DNS enabled in Chrome’s settings, instead of “Use your current provider”.