It’s no secret that internet adverts can annoy you when you’re surfing the web. Even on smartphones, banner advertisements, pop-ups, and other unwanted distractions are unavoidable. Advertisements have also begun to be snuck into Android skins and interfaces by phone and television manufacturers. Thankfully, using hardware as affordable as a Raspberry Pi Zero and free software is known as Pi-hole, you can easily block advertisements across your whole Wi-Fi or home network.
All you need is a DNS filter like Pi-hole running on a low-power machine like a Raspberry Pi to prevent advertisements across your entire home network. Then, instead of using the default setting, configure your router to transmit all future DNS queries to the Pi-hole computer.
How does it work??
You’re probably already familiar with browser-based extensions that allow you to block ads from websites. However, that’s not always a viable strategy most web browsers on Android and iOS, including Chrome, don’t support extensions. Smart televisions, game consoles, and other non-browser programs are all affected in the same way. Fortunately, you can use a DNS-level filter or sinkhole to ban advertisements across your whole network.
Domain Name Resolution (DNS) is a term that refers to the process of resolve It translates human-readable domain names (such as www.google.com) to a computer-readable IP address. By default, your router forwards all DNS queries to your internet provider’s servers.
We can, however, send all DNS requests to a different location, such as the ad-blocking filter we’ll set up later in this guide. Our custom DNS server will then ban any device on your network from contacting an advertising-related domain. Meanwhile, non-advertising domains will continue to be routed through an upstream DNS server such as Google or Cloudflare.
The advantages of this approach are clear: you don’t have to install ad-blocking software on every device in your household. It’s also only necessary to set it up once. Because the procedure takes place on a separate, dedicated device and within your home network, DNS filtering is also very resource-efficient. If all of that appeals to you, follow these instructions to install Pi-hole on a Raspberry Pi.
Install the Raspberry Pi OS on the hardware you’ve gathered
For this, you’ll need a computer that can run continuously throughout the day. The Raspberry Pi family is an excellent candidate for this task because DNS requests are extremely low. These devices are extremely energy-efficient, and you can get away with using the cheapest Raspberry Pi Zero W or an older full-sized Pi 3. You can even use an old laptop or desktop for this purpose if you choose parts that aren’t too powerful or power-hungry. You’ll need to set up a Linux distribution as well.
Besides a Raspberry Pi, you’ll also need a power adapter (a smartphone charger will likely do the job) and a microSD card (8GB or higher) to serve as your boot drive.
After you’ve assembled the hardware, you’ll need to install an operating system on the microSD card. Start by visiting this link on a desktop computer or laptop and downloading the Raspberry Pi Imager tool. Then, insert the microSD card into your computer.
Next, install and open the tool. Choose Raspberry Pi OS (Raspbian) as your operating system, and then select the microSD card from the list of available drives.
Press Ctrl + Shift + X simultaneously to bring up the advanced settings menu. Enter a password after clicking Enable SSH. If you want to use the Pi with a wireless connection, you’ll need to input your Wi-Fi credentials here as well.
Close the advanced settings menu and hit the Write button. Accept the warning and continue. The utility will now automatically download and write a copy of the Raspberry Pi OS to your microSD card.
After that, remove the microSD card from the computer and place it in the Pi. Turn on the board and wait for it to boot up – this could take several minutes. If you haven’t already done so, connect the Pi to your router with an Ethernet connection if haven’t already done so.
Install Pi-hole on the Raspberry Pi
Now that the Raspberry Pi is up and running, all we have to do is install Pi-hole and configure your router to forward DNS requests to it. However, we must first determine the Pi’s IP address on our local network. A network scanning program like Fing-Network Tools is a simple method to achieve this. The IP address in my case was 192.168.0.107, but it could be different for you.
With that, we now have enough information to remotely connect to the Raspberry Pi. Remember the SSH setting we turned on in the previous section? That way, we’ll be able to send orders to the Pi from another computer or smartphone. We’ll be using PuTTY on Windows for this tutorial, but the main processes are the same whether you’re using Termius – SSH and SFTP client on Android or iOS.
How to install Pi-hole on a Raspberry Pi:
Open your preferred SSH client, enter your Raspberry Pi’s IP address from the previous step, and click Connect or Open.
Accept the security prompt, if one appears. Enter pi as the username when prompted to log in. Finally, enter the password you created earlier in this section. We can now install Pi-hole. Simply copy and paste the following command into the SSH client. Then hit enter to put it into action.
curl -sSL https://install.pi-hole.net | bash
Finally, you’ll be presented with a one-time setup process for Pi-hole. Follow the instructions on-screen — you can use the default settings throughout. In the end, you’ll be greeted with an installation summary screen. Here, makes a note of your IPv4 address. we’ll configure our router to use it in the next section. Remember to note down the web interface address and password if you want to manage your Pi-hole later.
You may now close the SSH session.
Set up your router to work with Pi-hole.
At this point, the previous stages should have resulted in a successful Pi-hole installation. We’ll set up our router to transmit all future DNS queries to the Pi-hole in this final phase. Because the specific steps differ depending on the brand and model of your router, this can be a little complex. However, most major brands have support pages detailing how to configure DNS settings, like this one for TP-Link or this page from Netgear.
As you can see in the screenshot above, simply change your router’s DNS server entries to our Pi’s IP address from earlier. This will ensure that all queries are sent to our Pi-hole, which will filter advertising-related domains for us.
While we’re at it, make sure your Raspberry Pi has a static IP address. This prevents the router from assigning your Pi’s current IP address to another device. Your DNS queries will fail to resolve as a result, and you will appear to be without an internet connection. Again, step-by-step instructions can be found on your router manufacturer’s support pages, such as this one from Netgear.
You can manually modify DNS settings on each device if you can’t access your router’s administration interface for some reason. This, too, varies based on the operating system and version of your device. On Windows 11, you’ll find it under Settings > Network & Internet > Wi-Fi > Manage known networks > Your home network. Change both DNS entries to your Pi’s IP address.
Leave a Reply