Pi-Hole or something else for network ad blocking?
I've been aware of pi-hole for a while now, but never bothered with it because I do most web browsing on a laptop where browser extensions like uBlock origin are good enough. However, with multiple streaming services starting to insert adds into my paid subscriptions, I'm looking to upgrade to a network blocker that will also cover the apps on my smart TV.
I run most of my self hosted services on a proxmox server, so I'd like something that'll run as an LXC container or a VM. I'm also vaguely aware that various competing applications have come out since pi-hole first gained popularity. Is pi-hole still the best thing going, or are there better options?
AdGuard Home and blocky are other popular options. I switched over to AdGuard Home a while back because it supported DNS over HTTPS although I'm not sure if that's still a relevant reason. I run AGH as a docker container but it is easy to run in a LXC or VM. There's also a tool to sync configs if you need multiple instances. Notice: AGH block lists are formatted like uBlock Origin lists so you will not be able to use PiHole style lists.
DNS based ad blockers won't work when ads are served from the same place as the content. Which is why DNS based ad blockers don't work against Twitch or YouTube. So YMMV.
If you're looking to block interface ads and select streaming service ads there are block lists available like this one. The game with smart TVs is blocking the ads breaks the TV a little because sometimes it calls back to the same servers for updates and misc info like weather.
Also, be wary of relying on anything blocking ads on streaming services this way. They will likely serve them within the video stream, so not network-blockable.
Pi-Hole’s great. Got my primary instance on a Pi 4 and three secondaries (one per vlan) on LXCs. Works so well it feels weird seeing ads when I’m not at home, I’m actually considering using Tailscale to route all my queries through my home connection.
I use both. Pi-hole running in a docker container on one of my home servers which my gateway is configured to assign as the default DNS for all clients, and uBlock Origin on all my browsers to catch everything else.
Pihole is pretty good at catching ads on platforms that are not suited to browser based blockers (IoT devices, streaming boxes etc) but it isn't perfect and is best used in conjunction with another solution.
I run pihole on proxomox, and also opnsense in the same box. Then you can forward all port 53 traffic to your pihole. Some devices have hard-coded DNS that will bypass the DHCP DNS.
DNS based ad blocking does not block video ads served by streaming services. You'll need a modified client specific to the service you want to block ads for to achieve that.
If you are more into a full DNS solution that can also block Technitium DNS is a reasonable choice.
It is fairly userfriendly, can be run in an LXC easily (I am doing exactly that), able to use multiple block lists in any combination you want, can be controlled by an API, is regularly updated,etc.
I couldn't be happier with it, even though the learning curve is somewhat steep, when you are new to DNS. It is a fully fledged DNS server after all.
There’s nothing really bad with PiHole but I moved from it to AdGuard, both on proxmox. The UI brought me in, makes management a bit easier. It also supports DoH right out of the box.
I set up pihole a few months ago. I added a few dozen of the highest recommended block lists, but I wasn't impressed at all. It didn't seem very effective at blocking ads in both real world tests and tests that I found online specifically for testing your adblocker.
I ran Pi-hole for years. Switched to adguardhome running on 2 servers (primary and secondary) with AGH sync keeping the two instances identical. I like the UI better, dns rewrites, and the ability to simply block services entirely with a single click.
I use Blocky. I switched from PiHole because I didn’t have need for all the features (DHCP, Dashboard) and honestly it was a slow day and I had nothing better to do.
NextDNS is awesome if you want the simple solution, and don't have any hardware to install services on. Thee free version is somehwta limited to queries(300k per month), but personally didn't hit those when I was using the free tier.
NextDNS has a lot of nice customization and can easily had custom block lists. The pro version is 2euros a month I believe. I personally stick with NextDNS due to never having to worry about updating the service and it always just works. I also have it hooked to my Tailnet, that way all my devices use it by default.
But ofc, Pihole, Adguard and the rest are also awesome. Best to just pick one that looks good for you. The end goal here is to just have something running in the background rather than nothing.
I went with a pi running pi-hole. I got it as a project where the tool is the project. But, it's essential infrastructure now and I don't want to mess with it incase I break it. I'm an idiot with a poor history with pi guides so far, so I will break it. It's running the adblock fine, I assume it's doing the tracking and malware blocking fine too.
Sadly, that's where I leave the project for now, I had intended to give it a HDD and some... other... software but I really don't want to break it. I tried convincing the better half that I obviously need to N+1 but she wisely did not see reason.
Pihole is great for blocking on things that you can't install a local adblocker on. It does have downsides though, it can be annoying and block things you don't want it to. It might not block ads well on your tv or might impair the functionality in weird ways. It can depend lot on which lists you add, but there are many available and they are usually quite well documented about their intentions.
I felt the same way about youtube, streaming, shopping and general browsing: too many ads. Ruins the content. I set up a pi-hole as an experiment to see if it would do what it said and what others said about it. Manage your expectations here. Pi-hole works well for blocking a lot of static information and ads in your browser and a lot of apps on iOS and Android. It does not block video ads on Youtube or Hulu, it does not block ads for Roku or Firestick or Smart TV apps for example, it just does not work because of the technical limitations of how the PiHole software is designed. Using a regular PC with adblock browser extension installed as well gets rid of 99% of ads including video ads from adcdns.
PiHole is incredibly easy to setup and install, the pay off in quality of life is enormous. I cannot recommend it more to someone that has a little networking knowledge base. If you can figure out how to port forward and run a handful of command lines you can complete a pihole setup in an hour.
Yeah do it there is basically no downside. I agree with others that you may have trouble with the ads in streaming services. On my android TV, YouTube ads, for instance, aren't blocked by pihole.
If someone really wants this service but do not want to (or cannot) host it themself, https://ovpn.com offer this in their client. I used to have a pi-hole selfhosted but not anymore. Using their client on my phone as well solved the problem with blocking ads while not at home.
I actually had a lot of fun a couple years ago deploying PiHole on one of my RaspberryPi’s and routing all my household machines through it. It worked great UNTIL.. my kid was turning in empty homework on Google Classroom and his teachers were getting up him about it. We chastised him thinking it was his fault until I finally discovered that Pihole was messing up his uploads to GC and literally causing this problem. I got super angry with it and walked away without even trying to troubleshoot. Had to profusely apologise not only to his teachers but to him.
You should definitely set up pihole but I don't think it'll block ads on streaming apps unless I'm wrong and someone can point me to something that explains how I can set that up.