AdGuard Home on my Raspberry Pi
I set up AdGuard Home on my Raspberry Pi 4B (1 GB RAM) to block ads on all my devices. The usual way is to set the Pi as the DNS server in the Wi-Fi router, but my Airtel Xstream router has this setting locked. You can see the DNS options, but there's no button to save them.
So I used Tailscale instead. The Pi is on my tailnet, and in the Tailscale admin DNS settings, I added the Pi's Tailscale IP as the only global nameserver and turned on "Override DNS servers". Now my Mac and Android phone use the Pi for DNS whenever Tailscale is on, at home or outside on mobile data. If the Pi is ever down, I just turn off Tailscale.
I kept the AdGuard Home settings minimal because I only want ads blocked, nothing else.
- only the AdGuard DNS filter list
- Cloudflare and Quad9 as encrypted (DNS-over-HTTPS) upstreams
- DNSSEC and optimistic caching on
- safe browsing, parental control, and safe search off
The Pi isn't open to the internet either. The AdGuard admin panel is only reachable over Tailscale, SSH only accepts keys, and the firewall drops everything else. It's the same idea I used when locking down my Hetzner VPS.
One limitation is that DNS blocking can't remove YouTube ads in the YouTube app, because the ads come from the same servers as the videos. And this would have been the same even if I used Pi-hole as well.
It's not blocking 100% of the apps, but I'm still pretty happy with everything.