Use Pi-Hole to block ads on all devices in your network

Sure ad blockers have been around for a long while now, but those are typically only available for your web browsers and not ever device allows you to install them such as cell phones, media players, smart TV’s, etc. I came across a neat project that allows you to block web ads on every device in your network, called Pi-Hole.

In a nutshell Pi-Hole was developed to run on a Raspberry Pi, but will run on most any Debian based distro, and will act as a DNS server to which you point your devices or router to use as the DNS server so that all requests are filtered through Pi-Hole. Pi-Hole then blocks 100’s of thousands ad domains. All without having to use a single browser extension and for FREE!

So while Pi-Hole is made to run on a Raspberry Pi I decided to run Pi-Hole within my VMware home lab on a Ubuntu 16.04 LTS virtual machine using 1 vCPU and 1GB memory.

Below are the steps I performed to install Pi-Hole after I had Ubuntu installed on the VM.

How to install Pi-Hole on Ubuntu

  1. Lets start off making sure our Ubuntu install is updated so type in the following command:
    sudo apt-get update && sudo apt-get upgrade -y

    ubuntu ssh update system

  2. Lets get the Pi-Hole script and save it as pihole-install.sh by typing the following:
    sudo wget -O pihole-install.sh https://install.pi-hole.net

    pi hole download script

  3. It’s best practice not to blindly run any script you download from the internet and at least give it a quick look over, so lets open it in nano:
    sudo nano pihole-install.sh

    pi-hole view script

  4. After you’re done looking at pihole-install.sh simply press CTRL+X to exit nano.
    pi-hole close view script
  5. Now we need to make pihole-install.sh executable by typing:
    sudo chmod +x pihole-install.sh

    pi-hole chmod script

  6. Start the Pi-Hole installer:
    sudo ./pihole-install.sh

    pi-hole install script

  7. Press ENTER at the introduction screen.
    pi-hole install 1
  8. Press ENTER again to start configuring the network settings.
    pi-hole install 2
  9. Select the network adapter you want to use and press ENTER.
    pi-hole install 3
  10. Select which protocols you want to block ads.
    pi-hole install 4
  11. Next you can configure a static IP for Pi-Hole. I’ll use the current settings and select YES.
    pi-hole install 5
  12. Now select which upstream DNS service you want to use with Pi-Hole.
    pi-hole install 6
  13. Pi-Hole is now installed and ready for use. Either update all your devices DNS settings to your Pi-Hole IP or simply set your Router DNS to the Pi-Hole server IP.
    pi-hole install 7

Once you’ve changed your devices or router to use Pi-Hole as the primary DNS server you are essentially done and will no longer see any ads. If you want to enable/disable pi-hole ad blocking or whitelist certain ad domains then you can easily do so by accessing the Pi-Hole admin panel by going to: http://<PIHOLE_IP>/admin

pi-hole admin panel

They also give you a cool dashboard to see just how many ads Pi-Hole has been blocking for you and other stats – very neat stuff!

Check out the Pi-Hole website here and donate to help them out!

Similar Posts

  • My VMware ESXi Home Lab Upgrade

    Although the focus in my career right now is certainly more cloud focused in Amazon Web Services and Azure, I still use my home lab a lot.

    For the last 5+ years my home lab had consisted of using 3x Intel NUC’s (i5 DC53427HYE), a Synology NAS for shared storage and an HP ProCurve switch. This setup served me well for most of those years. It has allowed me to get many of the certifications I have, progress in my career and have fun as well.

    At the start of this year I decided it was time to give the home lab an overhaul. At first I looked at the newest generation of Intel NUC’s but really wasn’t looking forward to dropping over $1,300 on just partial compute (I’d still need to be RAM for each of the 3 NUC’s). I also wanted something that just worked, no more fooling around with network adapter drivers or doing this tweak or that tweak.

    I also no longer needed to be concerned about something that had a tiny footprint. I also questioned if I really needed multiple physical ESXi hosts. My home lab isn’t running anything mission critical and if I really wanted I could always build additional nested VMware ESXi hosts on one powerful machine if I needed.

    So in the end, the below is what I settled on. Replacing all of my compute, most of my networking and adding more storage!

    Read More “My VMware ESXi Home Lab Upgrade”

  • VMware ESXi 5 fails to install on Intel NUC, “No Network Adapters” error

    If you use the VMware ESXi 5 ISO image and try to install it on an Intel NUC you’ll receive the following error during the install.

    No Network Adapters

    No network adapters were detected. Either no network adapters are physically connected to the system, or a suitable driver could not be located. A third party driver my be required.

    Ensure that there is at least one network adapter physically connected to the system before attempting installation. If the problem persists, consult the VMware Knowledge Base.

    The “No Network Adapters” on the Intel NUC error message during the ESXi install is because VMware removed a number of drivers (non-enterprise drivers) from their ESXi 5.x image and in order to use the Intel NUC as an ESXi host you need to create a customized ESXi image with the NIC drivers added to the image.

    Read More “VMware ESXi 5 fails to install on Intel NUC, “No Network Adapters” error”

  • Installing DD-WRT on an ASUS RT-AC66U router

    I recently upgraded my EnGenius ESR-750H wireless N router to an Asus RT-AC66U wireless AC router. The EnGenius router has been pretty good for me but basic and no support for other firmware. The Asus RT-AC66U not only has a number of added features and support for 802.11ac, it also doesn’t seem to be plagued with the port 32764 bug or the Linksys “TheMoon” virus that’s been going around on select Linksys models, but the Asus also has a number of firmware options that can be used with this router such as Merlin, Tomato, and DD-WRT.

    I’ve used DD-WRT in the past with other routers and had great success and decided to go that route with my new AC66U router as well.

    How to install DD-WRT on Asus RT-AC66U

    Read More “Installing DD-WRT on an ASUS RT-AC66U router”

  • Install Synology NFS VAAI Plug-in for VMware

    Synology

    In the recent DSM update (5.1), Synology added VMware VAAI support for NFS volumes using two primitives which are Full File Clone and Reserve Space. What do these VAAI primitives offer?

    • Full File Clone enables virtual disks to be cloned by the NAS albeit while the machine is powered off.
    • Reserve Space allows you can create a thick VMDK file. However Reserve Space does not off-load the work to the array. The benefit of thick VMDKs is that many use eager-zero for high I/O performance needs.

    On the Synology side of things you just need to update to DSM 5.1, but in order to take advantage of VAAI you still need to install the VIB plugin on your ESXi 5.5 hosts.

    Read More “Install Synology NFS VAAI Plug-in for VMware”

  • How to add Realtek R8168 to ESXi 5.5 Update 2 ISO

    Realtek

    Over the past weekend I was working on a whitebox ESXi host and wanted to upgrade it to ESXi 5.5 Update 2 from an older version of ESXi 5.1 using a realtek R8168 network card. While I could have performed an in place upgrade, such as via command line, a clean install was preferred. However, VMware has removed a number of NIC drivers from ESXi 5.x and trying to install with the base ESXi image would result in a “No Network Adapters” error during install.

    In order to do a clean install you have to re-add the Realtek R8168 NIC drivers back into the ESXi 5.5 image, otherwise a NIC will not be found and thus ESXi will not install. These are the steps to easily re-add the Realtek R8168 drivers into ESXi 5.5 ISO by making a custom ESXi 5.5 image.

    Read More “How to add Realtek R8168 to ESXi 5.5 Update 2 ISO”

  • Create a custom VPC with private and public subnets on AWS

    In my free time I’ve been working through the AWS Certified Solutions Architect by Ryan Kroonenburg from ACloud.guru. Ryan really drives home the importance of knowing how to create a custom VPC within AWS as part of the exam. For me I learn best by not only doing it but writing it down.

    So if for nothing else but my own benefit, this post is going to show step by step how to create a custom VPC in AWS without using the AWS wizard.

    Read More “Create a custom VPC with private and public subnets on AWS”

Leave a Reply to Stibbons Cancel reply

Your email address will not be published. Required fields are marked *

9 Comments

  1. I’m amazed this guide hasn’t gained more popularity considering its noob-friendly, curl-command-avoiding benefits. Took so long to find out the safest, most straightforward way to go about installing this.

    Kudos

    1. @disqus_V450ceqG3H:disqus I can’t say for sure as I’ve either never ran into a web site that blocks you entirely for adblock or maybe I have and just never been effected by it. Got a website in mind that I can test for you?

  2. i installed it in a vm as you suggested, but my pi hole is working only inside vm. Not even on my host or any other machine. i am able to ping that ip address but could not launch pihole admin. any other settings do i need to do?

  3. Tha k you for this simple step by step instruction using a VM. One of these says I’ll get an actual pi, but this will suit just nicely until then. Many thanks once more!