AdGuard Home is another self-hosted, sink-holing ad-blocking dns server. It is similar to PiHole & Unbound in nature, but a different implementation.

I have not set up AGH via Docker, but as a service on an OpenWRT router. To install:

  1. Go to System Software
  2. Update Lists
  3. Search for adguardhome and install it

Reboot the router.

Now, configure the router and AdGuard to work together to serve DNS queries. AdGuard will be listening on the router’s port 53; if it can’t resolve a name, then it will forward the query to the router for a hostname lookup on port 54.

Custom Wildcard Records

As discussed in the PiHole section, the ability to set custom records for wildcard subdomains is useful in many situations. Unlike PiHole, however, AdGuard does support this natively – even in the web ui!

  1. Go to adguard home Filters DNS rewrites
  2. Click Add DNS rewrite
  3. Enter *.your.domain.com in the domain field, and the IP address of your server in the second.
    • Note: also unlike PiHole, AGH does use a leading * here!

If you find that this does… absolutely nothing, you may need to enable filtering_enabled. I’m not sure what option this corresponds to in the web UI (or if it’s there at all), but I was able to edit it in /etc/adguardhome.conf via SSH on the router.

Info

See also: github.com/AdguardTeam/AdGuardHome/issues/5457#issuecomment-2645835783