Setting up a Pi-Hole for your network is a beautifully simple process. This is a guide whose intent is to give you the confidence to try it yourself. If you are not new to the Raspberry Pi and have accomplished many things with it, this guide is likely a bit too basic. The goal of this is to get you up and running the easy way.
The best place to go for Pi-Hole reference is at the source of the project: https://docs.pi-hole.net/ It is chocked full of fantastic information and the key resource for this project.
This article is essentially an opinion piece with some technical sprinklings for how to set up a Pi-Hole, step-by-step, to get you from NOT having network wide, DNS filtration one to having one with great DNS filtration and other cool things.
- Raspberry Pi 3 or Pi 4 with a minimum of 512 MB of RAM
- Quality Power Supply, preferably one with an inline switch for convenience
- Adequate Case to put it in
- Micro SD Card of at least 4 GB but I would go for something much larger
- PC with Micro SD Card reading capability
- USB Keyboard
- HDMI capable display (temporarily)
I recommend going with Raspberry Pi Imager as the process is clean and easy.
If you are running openSUSE:
sudo zypper install rpi-imager
Or if you prefer Flatpaks for software distribution.
Open up the Raspberry Pi Imager and install Raspberry Pi OS Lite to the proper storage device, the designated SD Card.
Select Choose OS, then Select Raspberry Pi OS (other)
I recommend you go with Raspberry Pi OS Lite (32-Bit) as you will not need a desktop environment at all.
Then you will need to choose the storage device to write the image. Select the “Choose Storage button”
Be sure to choose the correct storage device. Be aware of the devices that are in your computer. I know that the SD card I have chosen is 32 GB so that is the one I am going to select.
Then select the “Write” button.
After the write and verification are completed, do not eject the card you will have to access the boot partition of the SD Card and make a small modification to access your Raspberry Pi using SSH. Open up the boot partition, open a terminal at that location and type in:
Using a USB keyboard with a monitor you will need to get the IP Address of the device. There are alternative ways of accomplishing this but this is the “easy way.” Once the device has booted up, log into your pi with the default username and password.
user: pi password: raspberry
Then get the host IP address of the Raspberry Pi
At this point, you need to change the password for your Pi. It is absolutely imperative that you do this for your security. I will stress that it is probably more important you CHANGE your password than continue from this point. I would rather you just don’t do this project, block CubicleNate.com and everything I have ever written than not change your password. I hope it is clear that I want you to change your password. That can be done by typing this in the terminal:
Follow the instructions from there to properly change your password.
Using the IP address you previously obtained and use that to access the Pi through a terminal from your computer if you want to log into it using a terminal. It will make it much easier to copy and paste the next command. For example, type in:
Enter our newly chosen password to log in and copy the following command from pi-hole.net
curl -sSL https://install.pi-hole.net | bash
This will take some time to process so patience is required here. Once it is complete, an Ncurses style interface will be presented with some notifications. The first to tell you that this will transform the Raspberry Pi device into a network wide ad blocker, the next to tell you that this wonderful project survives on donations and the last as an important reminder that this device MUST have a static IP address in order to work properly
Next you will have to specify your DNS provider or select a custom provider. Pi-Hole relies on third party lists in order to block ads. There is one option to choose from but this can be tweaked later but that is also outside of the scope of this article.
Next, you will have to set up your static IP address of your device. I strongly recommend you put it someplace that is outside of your DHCP range . The Gateway is your exit out of your local network into the world wide web. Chances are what was detected is correct.
Confirm that the device IP address and gateway are correct.
The installer asks you four more questions, go with the recommendation for each of them. that will give you the best experience. I can’t imagine for what purpose you wouldn’t want the web admin interface.
The Pi will execute some scripts and finish up by telling you what your password is to the web interface. Take note of the IP address and the password. It is important you record that password.
Reboot your Raspberry Pi and log into the web interface but be sure to set up your router properly first.
In order to use the Pi-Hole as your ad blocker, you will need to set your router to use the Pi-hole as your Primary DNS. This process will vary from router to router so you will have to consult the documentation on your specific pieces of hardware. The key is to make it your Primary DNS.
Running the Pi-Hole
Access the Pi-Hole using the browser of your choice. Type the IP Address of the Pi-Hole into the address bar and enjoy the nicely laid out dashboard. You should see numbers ticking up a little at a time. At first, you won’t see a whole lot of activity but given some time, it will start to give you some incredible numbers.
Using that password provided during the installation process, select the login button and enter it into to unlock all the exciting bits. I will not be covering the details as that is outside of the scope of this article but at this point, you can explore all the features and fine-tune the workings of Pi-Hole for your particular home network.
The Pi-Hole will continue to plug away, blocking bad DNS requests and show you how productive it has been with improving your network’s efficiency. You may be surprised at the numbers you get.
I don’t have any specific numbers on improved speed and efficiency of my network but it is noticeable. Since I do have somewhat limited bandwidth, I need to extract every bit of performance out of my pipe to the world wide web. The greatest area of improvement is in the time it takes to load a web page. Since the ads are getting blocked, I do notice a difference. Looking at the number of DNS queries blocked, day in and day out does also tell me that it is not idly sitting on the network.
The Pi-Hole has earned its keep as a key device that will stay on my network. It is a great tool to prevent unnecessary DNS requests from taking place. I see it as keeping browsers more honest. I wish this wasn’t a necessary device to have but it has absolutely become one. Maybe, one day, the Internet will not be the cesspool of trackers it has become but until that point, the Pi-Hole will continue to filter the cruft and ameliorate the situation.