[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:
- will ignore system default settings when resolving domain names; and
- will ignore user specified DNS server order if 8.8.8.8 is in the list; and
- 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.