Hey, not sure if this is the right community, but looking for some information.
I've seen many people strongly recommend AdGuard Home for network-wide ad-blocking either in isolation, or in direct comparison to Pihole. But I can't really find why there is such a strong recommendation. The only clear reason I've seen is that AdGuard is easier to set-up.
However, I already have Pihole set-up on all of my networks on separate Raspberry Pis at each location. I have it running as the DNS server so that every device that connects to the network automatically gets ad-blocking. I have a few groups set-up within Pihole for slightly nuanced blocking --- i.e. some of my family still want to use Facebook etc. (on a separate subnet).
So my question is, considering I already have Pihole set-up, am I missing some key benefit that AdGuard Home would provide?
I've been using a pihole exclusively for years on my Ubiquiti network at home. Combined with Wireguard, it's a stable, easy ad-blocking solution. I've never even considered moving from it, seeing how well pihole Just Works.
That's more-or-less what I thought. And in fact I forgot to add to my post that I also use Pihole on the go via Wireguard, which seems like another hurdle to converting to AdGuard. Thanks.
It has to go upstream for answered requests, so it can add 1 or 2 ms to the 45 ms it would otherwise take when you're local. If you're using a VPN to your home dns, it can add 75 ms and I can feel it.
If you bother that much, why not just use the Pi as an OpenWRT router with DNS over HTTPS, and get a great router with awesome QoS and actual software updates in the process?
The only edge Adguard Home has over PiHole I can think of is its out-of-box support of encrypted DNS upstream and downstream queries (e.g. DNS-over-HTTPS and DNS-over-TLS).
It can also run directly on lower powered machines. GL.iNet routers are a good example, they’re based on OpenWrt and come with AdGuard Home support out of the box, so no need for a whole external computer to handle DNS stuff. Sure it’s limited by ram about how many lists you can have, but still. Pihole is much more “substantial”
I've used both, each for a long stretch of time; they are fundamentally extremely similar and you'll be fine with either. I switched to AdGuard Home entirely because I could run it directly from my OPNSense router instead of a second machine. There isn't really anything else major I've noticed different between them, but my usage is fairly basic. AdGuard's interface felt a bit more mature and clean, but that's it.
If you're happy with your PiHole, there's no reason I'm aware of to switch.
I have used Pi-hole forever at home, but decided to try out AGH on my parents’ network. They do largely the same stuff, so if Pi-hole is working for you, stick with it; I do with my home network, too!
So, anecdotally, I used pihole first more than 5 years ago and switched to AdGuard as pihole did not have the ability to do conditional forwarding of requests for various zones or the ability to add static records via the UI. Conditional forwarding means that I can send the requests for let’s say example.com to an internal server hosting that zone responding with private records for internal services as well as other similar scenarios.
I also like that I can identify clients or networks in adguard by various factors and apply different rules (blocking and forwarding) and collect statistics on those clients or groups of clients, I don’t think pihole has either feature yet.
I also like that adguard is a static binary which is likely what people mean when they say it’s easier to install and maintain.
As to why I keep it and don’t switch back, I like the interface AdGuard has and it doesn’t break so I often forget about it anymore. I’ll update if I remember anything else but those are the larger things for me. If pihole is working then stick with it but curiosity is a definite reason to try adguard, I bet you could just stop pihole on your machine and run adguard to check it out without too much work (yay static binary) but I haven’t tested that myself.
If it's just for local you can add dns hostnames in the gui. I have all my lan boxes defined in pihole with the .lan under the local dbs ootio. Might even work for external too
That’s awesome, I’ll have to give it a try again! I saw they also recently added an external-dns target for pihole for kubernetes which was the real genesis of needing an internal dns server anyway.
As someone who has tried both and went back to pihole for no reason other than "why not?" -- it works as intended, does everything accordingly and I have 0 issues running it plus 2x unbound dns servers.
In the same boat as you here. Tried both and went back to Pi-hole because "why not?"
Adguard does have homeassistant setup which was nice and easy, but I like to compartmentaliz my setup so if homeassistant goes offline my internet does not go out when adguard is down.
Since I started running pfsense on a custom PC with dedicated NIC, unbound has been my go to choice now for DNS and Adblock. I use Pi-hole on specific subnets now.
There's a third party tool for AdGuard which allows syncing multiple instances. Very nice because if you want something to be redundant in your home setup, it's DNS. This adds the ability to sync configured rulesets and custom DNS entries.
EDIT: There seems to be a similar tool for Pi-hole as well.
You can't really go wrong with any of those. They are both very solid options. Having said that, if I had to recommend one, I'd go with Adguard, because:
The interface is better. Most notably the query log interface. Searching the logs with some long time span makes Pihole spike in memory usage and is super slow. (there's no server-side pagination)
Custom filters are more powerful thanks to modifiers, which AFAIK Pihole does not support. Some of it can be configured via dnsmasq (without user friendly interface), some I had not found any solution for. Good example is dnstype modifier, which I sometimes use to block AAAA responses for sites, that have set AAAA records, but the service actually does not work over IPv6. So I can disable IPv6 for certain domains if I need to. (or other way around, force IPv6 only)
Some of the above might have changed, I haven't used Pihole for about a year.
As someone who switched from PiHole to AdGuard Home a couple of years ago, my reason was because PiHole dropped support for adblock style lists that I was using, while AdGuard still supports them.
Been running a pi-hole with unbound for years here. Apart from updating the roots file every six months its been sitting there doing it's thing happily without skipping a beat.
I did take a small look at Adguard but couldn't see anything like the tail pihole log option which I tend to have in a tab as I like to see what's going on.
I don't think you'll miss anything. If pihole works for you, then there is no need to switch to adguard.
One thing I found helpful is configuring my router (asuswrt-merlin) to transparently route all dns request to my adguard instance. You might already heard that some apps and IoT devices tried to be clever and hard-coded their dns server so they can evade dns blocking (I'm looking at you Netflix). If your router support redirecting all dns request to a custom dns server, definitely use it!
I have run my own PiHole previously. Then I wanted Ad blocking on my phone, so I also setup OpenVPN that ran alongside my PiHole so I could get ad blocking anywhere. I travel often, and then we moved, so I never got it set up again, at the same time I discovered AdGuard could be configured on both home networks for network-level blocking, but they also have device profiles for iOS.
I haven’t had to fuss with PiHole now in years.
If you are happy to do the administration of a PiHole, and the scope it provides, it’s good. I didn’t want to have to fuss with it anymore.
I only use PiHole for a couple of months, it wasn't easy to setup something that worked on my LAN and over internet. Initially I used OpenVPN but was hard to use it with profiles to identify the devices.
Than a tried AdGuard Home, and use it with DoH/DoT server was very simple, and can easily use any profile for each device on LAN or DoH/DoT server.
Can easily search logs and block/allow for each device.
I found it easier to setup adguard as my DHCP server, because I wasn't able to change the default DNS settings of my isp's router.
Additionally The web interface was quite laggy on my raspberry pi 1b and it always filled up my sdcard with log data (it's been over a year since when I last used pihole though)
I bought my own router and modem because of that. Cox started locking router features away inside their app and wanted $10/month to change settings on a modem/router combo I was already paying $8/month to rent!
Pihole CPU and memory usage (these are 1 week stats):
Same for Adguard:
So both are kind of the same unless you run on very limited hardware. The docker images are about 100MB for Pihole and 20MB for Adguard. This is probably most important parameter as you can run Adguard on some routers, that have very limited flash storage, but again only matters on extremely limited HW, something like Raspberry Pi has orders of magnitude more resources.
I hosted both, adguard on VPS for whenever i'm outside and pihole in my local network with my adguard's DoQ as upstream.
I also use wireguard so i don't need to switch DNS and to bypass DPI on my phone.
I used to do all this, but then I gave up and started paying for NextDNS. It's like having your own Piholes in the cloud. It's like £18/year and is way more reliable than self hosting, especially for something as crucial as DNS for your home. It also has excellent parental controls if you need that, multiple profiles, good logging and analytics and a decent looking privacy policy.
Sure, it's not as fun as self-hosting but it's better then getting shouted at every time someone's app stops working because of some glitch in your setup.