When I first got my Raspberry Pi, I turned it a Google Assistant for my daughter. Since then, I have acquired several actual Google Home Mini devices, enough to scatter around the apartment and replace the Pi in my daughter’s room. It made me a little sad to think that the Pi was just sitting in a drawer collecting dust, so I decided to do something with it: I would turn it into an ad blocker for my home network.
Just a side note — this isn’t a tutorial. I can’t do any better than the official Pi-Hole docs, which I followed to their conclusion. It was sufficient for me (except for the part that wasn’t, but I’ll get to that in a moment), so if you’re interested in doing the same, I recommend you do so as well.
After installing Pi-Hole, the next step is to configure it as your router’s DNS server. I have a fairly cheap (and old) Belkin wireless router, and it did not like that at all. In fact, it completely broke Internet access from all my devices when I set it to use the Pi-Hole for DNS. The Pi-Hole website says that as a last resort, you can configure the DNS settings on each device in your network, so I started with my main desktop computer.
After changing my network settings, I needed to make sure it was working as expected. I did a Google search for “pi-hole test sites,” and came across multiple threads talking on what sites to test the Pi-Hole’s ad-blocking functionality. Until I came to my senses, I ended up using speedtest.net.
Here’s what it looks like before setting my computer to use the Pi-Hole as its DNS provider:
And here’s the same page after:
Lookin’ good. Of course, that’s just one device on my home network out of… quick count here, one desktop, two laptops, three phones, a TV, and a Roku. I have to update each device’s DNS settings one by one, since I can’t do it on my router.
My desktop was easy enough, being a Windows 10 machine. One of my laptops is running the same, so updating it went smoothly too. The other laptop used to have Windows on it, but (long story short) now it’s a Chromebook of sorts. (You can’t install Google’s Chrome OS on whatever device you want, but I like Neverware’s CloudReady.) For reasons unknown to me, it does not like using the Pi-Hole for DNS. I had switched it over, but I’ve since switched it back.
My wife, daughter, and I all have Android phones. Unless I’m connecting to a wifi network, I’ve rarely needed to open up the network settings on an Android device. I discovered that with DCHP enabled, Android 8 does not allow you to modify DNS settings. (I read that this changed with 9, so maybe with my next phone I can.) In the meantime, I could switch to static IP, but… no thanks.
So in searching for a way to modify DNS while leaving DCHP enabled, I turned to my favorite Android website, Android Police. Despite their site being stuffed with ads, I like their reporting and articles the best. I’m doing this on my desktop machine, and I noticed that all the ads which I’m accustomed to seeing are, of course, gone. (Why this did not occur to me at the very start, I do not know.) So in addition to finding what I was looking for, I was able to be doubly sure that my ad blocker was indeed working.
On that note, it turns out that there are apps (of course there are) that allow you to customize your Android’s DNS settings. I haven’t toyed with any of those, yet. I’ve simply resigned myself to the fact that until I can replace the router with something that will play nicely with the Pi-Hole, I simply won’t be able to use it on a true network-wide level.