Pi-hole logo

I got a Raspberry Pi 4 for Christmas, although never really had in mind running Pi-hole. I’ve also been playing around with various browsers, which is what actually got me thinking about using Pi-hole. And finally, after a couple of Youtube videos I decided to give Pi-hole a spin for myself, but not on my Raspberry Pi 4, but in a Ubuntu VM on my FreeNAS server!

What is this Pi-hole I hear you ask? Well, it’s a new term for me too, but it’s described as a ‘DNS sinkhole’ which is basically a fancy caching and forwarding DNS (with some additional functionality on top) to block and redirect specific requests against a maintained set of advertising blocking lists, or your own white/black-lists.

It’s also pretty straight forward to configure it as a recursive DNS server which will actually cache and resolve DNS queries itself, rather than going out to the internet to resolve known hosts. It can also be configured to work as a DHCP server, something that would have been useful when I was having problems I blogged about here, but not something I’ve actually configured it for at a minute.

The installation itself was pretty straight forward, although it took me a little while to get the new VM up and running with ubuntu 18.4. I’m struggling to remember why now (I actually set this up at the end of last week) but I couldn’t partition/format the virtual disk, which eventually I managed to do.

Once that was done, it was simply a case of configuring the networking using netplan (it needs a static IP address) and configuring root SSH access to make access easier (I still struggle to get a | using the VNC connection). Installing Pi-hole is a single command:

curl -sSL https://install.pi-hole.net | bash

Once complete, you’ll get the password for the admin console, which can be reached at http://IP/admin, and looks something like this:

pi-hole dashboard

As this has been running for a few days, it’s showing some of the basic data, but there’s much more once you’ve logged in. As a test, I’ve only pointed 5 of my devices at the PI-hole DNS server, but it’s working really well so will be configuring things on the router so all traffic is through Pi-hole.

I’d also added the steps to make it a recursive DNS server using unbound. I have a jail configured for unbound which I probably could have used, but it made sense to keep everything together in what’s a pretty lightweight VM. I’ll kill the unbound jail once I’ve got everything set up on the router.

No plans to use it for DHCP at the minute, but it’s nice to know that’s an option depending on what I do with my network later this year.