Sick of ads on the Web, YouTube and other services?
Do you have a Raspberry Pi (4, 3, or even a Zero like me) laying around collecting dust and you want to make use of it?
Use it for ad-blocking in your home network and to finally browse the web, watch videos etc. without annoying ads.
One-liner install
Take out your Raspberry Pi from your forgotten drawer and connect to it via SSH.
Now run the following for a simple installation of Pi-hole:
curl -sSL https://install.pi-hole.net | bash
Follow the on-screen instructions based on your preferences (query logging, static IP etc.) and you’re one-step away for a ad-free experience while browsing the Web.
NB: Keep track of the password to access the admin panel!
Get the latest on Clean Code, Elixir, Node.js, Testing and Programming
Get updates from me in your inbox!
Configure the Router or individual devices
If you don’t want to fiddle around with your router configuration, you can configure each device indidually.
That’s the easiest method I find. For more information see discourse.pi-hole.net.
On your devices, head over to the DNS settings, and set as the only DNS server address the Raspberry’s IP:
On iOS
On Mac OS
Verify DNS resolution
To verify that the Raspberry Pi is used for DNS resolution, you can use a simple trick.
I used dig
to interrogate DNS name servers, like this:
dig +trace cri.dev
You’ll see a similar output (check for your Raspberry’s IP address):
~ dig +trace cri.dev
; <<>> DiG 9.10.6 <<>> +trace cri.dev
;; global options: +cmd
. 509447 IN NS a.root-servers.net.
. 509447 IN NS b.root-servers.net.
. 509447 IN NS c.root-servers.net.
. 509447 IN NS d.root-servers.net.
. 509447 IN NS e.root-servers.net.
. 509447 IN NS f.root-servers.net.
. 509447 IN NS g.root-servers.net.
. 509447 IN NS h.root-servers.net.
. 509447 IN NS i.root-servers.net.
. 509447 IN NS j.root-servers.net.
. 509447 IN NS k.root-servers.net.
. 509447 IN NS l.root-servers.net.
. 509447 IN NS m.root-servers.net.
. 509447 IN RRSIG NS 8 0 518400 20200516050000 20200503040000 48903 . NtC6ObYfTRgLakuNLhMl ...
;; Received 525 bytes from 192.168.1.127#53(192.168.1.127) in 60 ms
...
As you can see, the Raspberry Pi’s IP address (192.168.1.127 on port 53) is first interrogated for the DNS resolution.
Get the latest on Clean Code, Elixir, Node.js, Testing and Programming
Get updates from me in your inbox!
Admin Panel
Pi-hole’s administration panel can be accessed at http://{PI_IP_ADDRESS}/admin
and optionally configure it further.
Personally, I prefer to set the DNS resolver privacy level to Anonymous mode so that even in your own home-network your privacy is respected.
## Donate to pi-hole
Head over to pi-hole.net/donate/ and if you’re feeling generous, support pi-hole for the greater good.