Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole and optionally a DHCP server, intended for use on a private network. It is designed for use on embedded devices with network capability, such as the Raspberry Pi, but it can be used on other machines running Linux and cloud implementations. Pi-hole has the ability to block traditional website advertisements as well as advertisements in unconventional places, such as smart TVs and mobile operating system advertisements.
There are many ways of doing this, and this is my way. Most likely this is easiest and fastest way.
In this tutorial you need:
-Raspberry Pi + official RPi power supply (my board is overkill for this, Pi Zero would do just fine)
-Network cable (Wi-Fi connection is not recommended. My cable, CAT7 is again overkill for this, CAT5e is more than enough)
-Memory card. I use (bought) NOOBS card for installing Raspbian. That way we’ll be skipping Etcher (downloading .bin & flashing)
-HDMI cable (I’m not making headless setup)
-Keyboard & mouse (I’m not making headless setup), but we are enabling SSH access – just in case
-Admin access to your router
-Win or Linux machine if you need to Etcher
-SSH for headless
Let’s get this (easy) party started!
Wire/mount everything. Board, cables etc. Connect Rpi directly to the router.
Insert SD card and power up the system.
Install “base” OS (Raspbian) and update/upgrade everything (on first boot).
Enable SSH by making empty file named SSH (no file extension) in the root of BOOT partition (reboot afterwards), or go through terminal.
-Open terminal and type: sudo raspi-config
-Select Interfacing Options
-Select SSH and enable it. Just be sure you haven’t used weak (or default) password. Close the config app
-Type: sudo reboot
-Open terminal and type: wget -O basic-install.sh https://install.pi-hole.net
-Then type: sudo bash basic-install.sh and installation starts
Selecting DNS provider is up to you. On my personal testing, my ISP DNS is superior on speed, yet I love the idea of more privacy on my DNS lookups – in future I might make a guide on how to run your very own DNS. In this time, I’ll be selecting my ISP DNS: custom. Find out what is your ISP DNS, login to your router and check from there. Make sure you’ve typed DNS Servers correctly.
I recommend leaving lists as they are (you can edit, add or remove them later).
Leave networking as-is. You never know when you suddenly have a need for IPv6.
Give static IP outside the usual DHCP range, You can use default if you want to. I usually use .20/30/40/50. For example, good static IP would be: 192.168.0.50/24. Make sure that the IP is within the range your LAN is.
Install admin interface and lighttpd, as I’m almost 100% sure that you won’t be running any other servers through your Pi-hole HW.
You definitely want to have log queries enabled (for statistic, troubleshoot etc).
Privacy mode for FTL is up to you. I choose the show everything.
Make sure you’ve memorized the password! If you forgot the password, you need to SSH and use this command:
pihole -a -p newpassword.
14: OPTIONAL STEP
Login to Pi-hole and enable DHCP server.
15: OPTIONAL STEP
Login to your router and disable DHCP server.
Set Pi-hole IP as Primary DNS (blank secondary).
Enjoy “cleaner” surfing.