Pi-hole

2 minute read

I’ve been a fan of small computing devices such as a Raspberry Pi. At one point, I wanted to have a display mounted to my office door where passersby could see my schedule at a glance or schedule a new meeting. However, since my office door is generally open, my desired solution was not a practical one.

However, I recently found a good use: Pi-hole. For those who are not aware, Pi-hole filters DNS queries ostensibly to block ads. How it works is that it acts as your networks’ DNS server. Any entry that is blacklisted gets routed to 0.0.0.0. Not only does this block traffic on web browsers, but everything on the network.

I am generally okay with advertising so long as it does not interfere with my browsing experience. But, serving malicious ads or malware is not okay. Also, as more of my home devices are connected to the internet, I am more concerned about the data they are requesting.

As much as I’d love to cobble together my own Rasberry Pi, my soldering skills are practically non-existent. Instead, I opted to purchase a kit. I went with the 8 GB option. But, 2 GB may have been sufficient. My setup is currently sitting at 2.4% of the memory load.

The kit was easy to assemble. The most “challenging” thing for me was installing the heat sinks. With my fat fingers, I opted to use tweezers. Next, I downloaded the latest Raspberry Pi OS Lite image. I could have used the desktop version. But, unless I planned on keeping a monitor and keyboard connected to it, it wasn’t needed.

I used the Raspberry Pi Imager to put the downloaded image on the SD card. While I’m sure I have an SD card reader somewhere, I was glad that the kit I bought included a USB SD card reader.

I planned to use Pi-Hole just as a DNS server. But, I found that even if my router used Pi-Hole for DNS, it wasn’t letting the clients use Pi-Hole. I ended up letting Pi-Hole be a DHCP server as well.

One issue I ran into was occasionally getting errors when trying to view the query log. By default, PHP uses 128 megabytes of memory. I increased the memory limit to 2 gigabytes and restarted the service:

sudo nano /etc/php/*/cgi/php.ini
sudo service lighttpd restart

I knew it was going to block some traffic. I didn’t realize how much traffic was actually on my network and how much it would stop. In the last 24 hours, there have been 83,331 DNS queries from 17 different clients. Pi-hole blocked ~36.2% of that traffic.

I was also curious as to what was still being allowed. For example, I saw a bunch of requests to www.belkin.com. This is because Linksys was bought by Belkin from Cisco. But, I’m concerned about the number of requests my router is making and what data it may be leaking.

The most popular request was to wpad.local. This is for the Web Proxy Auto-Discovery Protocol. There may be some value in having it enabled. But since my workstation seems to be the only client using it, I just disabled it.

I’ll have to revisit my Pi-hole statistics periodically. I’m curious about how my network’s traffic changes over time and what new insights I may uncover.

Note: I may earn a small commission from affiliate links.