Pi-Hole or something else for network ad blocking?

plenipotentprotogod@lemmy.world to Selfhosted@lemmy.world – 165 points –

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?

109

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.

Pi-hole is great, but unfortunately ads in YouTube or other streaming services is not one of the things it blocks.

Glad I read this - all my other devices block ads perfectly well already, but was wondering if I could block YouTube ads on my Apple TV... I guess not!

Your best bet is getting a platform your can sideload apps onto and running SmartTube

Not sure of any downside yet but setting your country to Albania via vpn removes all YouTube ads on Apple TV. Was just informed of this yesterday and as mentioned there may be reasons to not do this.

I wonder why we don't have AI browser extensions that can recognise and obscure possible ads / unwanted content yet

Because the AI isn't needed, and would be computationally expensive.

Extensions like ublock origin and sponsorblock work just fine.

PiHole and similar services just use DNS blocking, which only works if the ads are served via a third-party ad server. Sites with their own ad inventory (YouTube, Facebook, Twitter, etc) can't be blocked this way since they can just serve the ads from the same domain as their regular content.

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
HTTPS HTTP over SSL
IP Internet Protocol
IoT Internet of Things for device controllers
LXC Linux Containers
PiHole Network-wide ad-blocker (DNS sinkhole)
SSL Secure Sockets Layer, for transparent encryption
VPN Virtual Private Network

7 acronyms in this thread; the most compressed thread commented on today has 5 acronyms.

[Thread #431 for this sub, first seen 15th Jan 2024, 23:55] [FAQ] [Full list] [Contact] [Source code]

NextDNS.

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.

NextDNS caps your queries per month on the free account. ControlD doesn't and you can pick a various mix of their public DNS resolvers. You don't necessarily get the granular control with doing it this way for free that you can get with NextDNS though.

If you do check out these, make sure you click the Secure Resolvers if you'd prefer for DLS/DOQ/DNS over HTTPS instead of Legacy.

It’s like $20 year, not everything good can be free.

I run pihole and my wireguard VPN server locks all queries through it, which in turn uses unbound and queries via different providers like Cisco's OpenDNS, Cloudflare and Quad9. However, I wanted to present a similar offering that also has a free-tier without a query cap for people interested.

Your „free“ option just requires buying hardware that enables all of it and an intensive setup process and knowledge which might be quite time consuming.

It may be a good solution but it’s far from free for many people.

The free solution I was referring to was my comment about using ControlD, which certainly offers a free service....which is the comment that the other person was responding to.

Two things:

  • A free solution was already being talked about.
  • You can easily run pihole/adguard home on $20 hardware by following basic tutorials. It’s far from complex.

I’m also a fan of NextDNS. Have an unbound instance querying it.

Adguard-home is way better than pi-hole imo

Pihole user for more than 5 years,.can confirm that it is indeed better, made the switch few months ago

What makes it better other than the UI? I'm weary of using it because it is developed by Russian developers.

Encryption, UI, probably a little bit more serious development

But encryption is a big thing, DoT, DoH, Quic. And soon they will have ECH

Just wanted to chime in and say that with a pihole you can also have encryption if you point to a local resolver like cloudflared or unbound.

My pihole forwards everything to a cloudflared service running on 127.0.0.1:5353 to encrypt all my outgoing DNS queries, it was really easy to setup: https://docs.pi-hole.net/guides/dns/cloudflared/

Hold on, this is not the same encryption

The encryption i was talking about is the encryption of your dns server

The article you sent is talking about upstream dns server encryption

The encryption i was talking about is the encryption of your dns server

You mean encryption between the client and your DNS server, on your local network?

You can do it on your local network, but this won't make much sense

I mean encryption between your phone or laptop outside of your house, and your dns server at your house

That's a bunch of extra manual work though - both the initial setup, plus keeping the extra software packages up-to-date. With AdGuard Home, it's already configured to use DoH by default.

That's cool for certain applications but on my home network should I really be super concerned about DNS encryption?

Not within the network, but translating regular dns to DoH before heading out to WAN keeps your browsing a little bit more private from your isp. Marginal, but it is a difference.

It's not just a little bit more private... It's a lot more private. Some ISPs have been known to build advertising profiles using DNS data. It's trivial for them to see all DNS lookups and even modify the responses, since it's both unencrypted and unauthenticated by default.

Probably not, but anyway it's pretty cool to have an option to do this kind of stuff

You can set up this dns on your phone, laptop, without a need of vpn (although vpns are cool, especially tailscale)

But, are you always connected to the vpn? Or even to connect to the vpn itself you probably need dns, why would not use your own

As an AdGuard home user for more than a few years, I switched back to Pihole because it wasn’t really any better. It was also easier to pair pihole with Unbound.

Plus it's easy to run multiple AdGuard Home servers and keep them in sync using https://github.com/bakito/adguardhome-sync

Oh, oh, oh, gimme that!!

First time i hear about something like that, i'm going to install it asap

It works well! I have one AdGuardHome instance running on my home server and one running on a Raspberry Pi, both using Docker. Having two prevents the internet from breaking in case I have to shut down one of them for some reason.

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.

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 second that, turns out 90% of the queries on my network come from my Libratone speakers and they seem to desperately try and reach China (.com.cn)

Hint: you don't need to route all your traffic through your VPN to make use of the pihole adblocking: Just DNS. If your at home internet is even moderately stable/good then this should barely affect your roaming internet experience, since DNS traffic is such a small part of all traffic.

Also, since I'm already mirroring the configuration of my PiHole instance to a secondary one, I'm considering putting a tertiary one on some forever-free cloud server instance and just using that when not at home (put it into the same wireguard vpn to prevent security nightmares). That way my roaming private DNS wouldn't even depend on my home internet.

I do this and it works great. Ad block on all my devices regardless of proprietary sandboxes. I also use Syncthing over my tailnet IP addresses so that traffic never leaves my “grounds”. I’m slowly building out a whole suite of services I host only within my tailnet, jellyfin, calibre, invidious, it been a great learning experience. I’m about to set up a proper home lab, finally moving everything off an old laptop.

Adguard home is like pihole, but has built in encrypted DNS options. For easy mode NextDNS.

They pretty much all have the same block lists to choose from.

I use 2 cloudflare containers that the pihole points to. That gives me DNS over https but it's more of a mission to set up.

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.

Some chromecasts stop working when you do that.

Chuck 'em in the garbage and get something that doesn't break when you insist on privacy.

Ha! This is my new way of looking at my smart devices. I’ll sell you off if you don’t do what I want, and buy something that does. Very much a threat.

I recently factory reset all my Roku TVs, and didn’t connect them to the internet… and they work much better now.

Roku broke big time when I insisted on privacy. blocked the entire Roku domain, it broke the apps on a 1-month schedule like clockwork to get the network release for reinstall which allowed for phone home. lol no. I trashed it. They are dumb TVs now.

I've done the same! It's impossible to buy dumb TVs nowadays, but you can always prevent them from connecting to the network.

Really? I run several Chromecasts, and I block their access to all DNS services except my internal Pi-holes. They work just fine.

It’s probably not blocking DNS-over-HTTPS

Lol - not my first rodeo. I'm blocking dns.google as well, and I'm 99.999% certain Google won't have coded Chromecasts to use anyone else's DNS servers.

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.

Try em both. See what you think.

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.

The best test I have is my wife complaining, that ads in Google results cannot be opened. It seems to work flawlessly for me 😂

On a more serious note, what tests are these? The thing is, the ad domain is either in the blocklist or not. Ads inside apps are hard to block (I even have adaway on my android, and some slip through as eg Instagram reuses the backend domains/endpoints for ad delivery).

I have a pihole setup and did not get any ads when testing there. I think you might want to add more lists to your pihole.

I got the wife complaining about the google results being blocked, but very little else. Most sites are still Frankenstein’s monsters full of atrocious ads.

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 did this as well, I still have 2 pihole instances running with gravitysync for now, but AGH sync is much easier to setup and maintain. My 2 pihole instances are running for my guest network only and AGH is running everything else.

I love pihole, for my family it is better as it helps on all the devices. Being able to block malware and tracking is nice too

https://lemmy.world/post/10327372

This dude uses mini PCs for pi type tasks.

Might be easier to get a hold of.

Good luck OP

PiHole runs great on older Raspberry Pi’s(I am still using a pi3). Older models are still very easy to get and a readily available from the approved resellers list.

Was running on my original pi b up till I replaced it recently with a pi 4. Was a little slow but worked fine.

Same here, but I've also set up a Pi Zero W to run pihole/unbound at the inlaws place without any issue.

One thing I've found is it's good at blocking ads via mobile gaming. The downside is if those ads return rewards in-game.

It takes a little experimentation to get it right, but you can find out which urls are involved with your game's ads and whitelist them

Yes, been running one for many years and it’s great.

Shoutout to the PiHole team!

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.

When the ads come from the same domain as the content, which is the case with youtube, you can't block them with any DNS based ad blocker.

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 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.

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.

Why would you want to port forward your dns?

Sorry, you wouldnt and didnt mean to imply that. I was suggesting that port forwarding is a fairly easy task and if one is confident in their ability to do that, than they should be able to complete a PiHole install.

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.

Pinhole is still a thing. If you want other options there is also adguard.

Pi-hole and AdGuard home are both good. It kind of comes down to which UI you like better.

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 have no experience outside of blocky, but the configuration file is so damm simple and clean I have troubles even considering anything else.

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.

Yeah it's near impossible to block on streaming services because most of the ads are served up from the same DNS locations that the watchable media is hosted on.

Right. I mean, I looked into this a few years ago when I set it up and just accepted my fate