I've been using the uBlock extension for quite a while now for surfing the web on my computer. It's been perfect and I haven't seen ads for a very long time. Recently, I've started to watch a bit of content (YouTube) on my iPhone and have been a bit annoyed by the amount of ads I have to endure.
I've heard a lot of great things about PiHole and wanted to set it up for my iPhone. It basically acts as a network wide ad filter that has very minimal setup.
It was designed to be run on a Raspberry Pi, but it's Docker Image works just as well (and much easier to setup).
I don't have a Raspberry Pi, but I do have an Unraid server (read more about how I set it up here) which turns out to be an excellent candidate for running a Dockerised version of PiHole on.
Installing Community Applications
The first step is to install the
Commuinity Applications plugin on your Unraid server. Follow the steps here if you haven't already got the plugin.
Installing the PiHole Docker Container
Go to the
Commuinity Applications plugin, and then search
PiHole. There should only be one result:
Install and you'll be taken to a configuration page for the PiHole Docker container:
You'll need to change a few settings before creating the container. First change the
Network Type to be
Custom. An extra field called
Fixed IP Address (optional) should have appeared, put a static IP address that exists on your subnet for the PiHole container to run on. This is important as PiHole can't be run on a port other than 80 and therefore needs it's only static IP Address:
Next, look for the
Container Variable: ServerIP (
Key 3:). Update the value to be the static IP address you assigned before:
Now look for the
Container Variable: DNS1 and set that to
Container Variable: DNS2 and set that to
Finally, update the
Container Variable: TZ variable to match your timezone, you can find a list of timezones here:
Apply. The Docker image will then get pulled and the settings will be applied (hopefully successfully):
Now go to your Docker containers and you should see your new PiHole container running:
Click on it and it should open your PiHole web interface (http://static-ip-address/admin) in a new tab:
Adjusting PiHole Settings
In your PiHole web interface, click
Login and enter
admin as the password. You'll be redirected back to the dashboard with more options on the sidebar. Click
Go to the
DNS tab and then check
Google (ECS) and
OpenDNS (ECS) or any other upstream DNS servers you want:
That's it! You have now setup PiHole on your UnRaid server.
Updating DNS settings on your iPhone to use PiHole
To use your new PiHole DNS server on your iPhone, go to
Switch the setting to be
Manual and then remove all DNS servers that are added for your network. Add the static IP Address of your PiHole and click save:
Save and now refresh your browser/apps and you should now have an Ad free iPhone experience!
Updating DNS settings on your Android to use PiHole
Wi-Fi -> Long Press your Network ->
Manage network settings:
show advanced options then change
IP settings to
Enter your PiHole's IP address into DNS 1 and hit Save.
Now enjoy your ad free experience on your Android!
Updating Network wide settings to use PiHole
Since this varies a lot between routers, I won't be covering this. Look for another blog or update your DNS settings somewhere in your router to use your PiHole's IP address.
Thanks for reading!