TL;DR
Chrome has a new feature "Async DNS resolver" which might use other DNS servers than configured. This breaks DNS based blockers like Pi-hole.
Disable it on Android
- open
chrome://flags/
in chrome browser
search for dns
disable Async DNS resolver
restart browser (browser will suggest it on the bottom) - go to
chrome://net-internals/#dns
Async DNS should be disabled
clear Host resolver cache
Before (192.167.77.7 is Pihole as DHCP and DNS server)
Disabling
After
Disable it on Desktop
- Create a link to Chrome on your Desktop
- Right click - then Properties
- In Shortcut Tab - append
--disable-async-dns
to Target
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-async-dns
- Start Chrome from that link
go tochrome://net-internals/#dns
Async DNS should be disabled
Clear Host resolver cache - (optional) you can right click the link and pin it to taskbar
Disable it on Mac
Run Terminal.app then use the following command:
open /Applications/Google\ Chrome.app --args --disable-async-dns
This will launch it once using the parameter. From there you could make an alias to make it easier to launch from the terminal or write an AppleScript to make it double clickable.
I use Pi-hole on my network. Recently I got Google Ads on my smartphone despite Pi-hole. After opening the same website on Firefox the Ads were not there. This had to be something with Chrome.
After some research I found out that Chrome is using IPv6 DNS servers. This prevents Pi-hole from blocking those requests.
Async DNS resolver
Recently, Google added support for a feature known as asynchronous DNS to Google Chrome, which aims to speed up page loading times by resolving the IP address of a website before you click the link. It works by scanning a web page as it loads, finding any domain names linked and using a Domain Name Server (DNS) to find the IP address associated with each of them. Google says it should respect the DNS server that the user has configured on-device, but on some occasions, this seems not to be the case. Users are reporting that DNS based ad-blockers like Pi-hole no longer function correctly on the latest version of Chrome.
Fixing DNS-Based Ad Blockers in Google Chrome
- Disable Chrome’s Asynchronous DNS Feature
- Clear the DNS Cache
- Restart Chrome
See detailed steps after TL;DR on top of the post
Sources: