Skip to content

pihole

The Pi-hole is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software. Useful for blocking ad services at a DNS level. It uses a list of known ad services stored on github, can add your own. It can also operate as a internal dns router and dhcp server.

Pihole Setup

If you have a raspberry-pi or another device, its super easy to get things going.

Any debian based system should be able to get things going quickly. Then all you need to do is set your devices to use your pihole as the primary dns server.

Debian based one-step install

curl -sSL https://install.pi-hole.net | bash

Note

I find this to be a little flaky when it comes to DNS, often times OS will need reboots and cache to be cleared in order to actively start using pihole DNS.

Browsers also store dns info so many things can conflict before your DNS switches over. I find that using Pihole as primary DHCP server forces your devices to use the correct DNS server and fixes a lot of problems.

Also keep in mind that ipv6 can interfere if you are like me and have a ISP provider that tries to force their DNS


Setup on Proxmox VM

My pihole is operating as a Debian GNU/Linux 12 (bookworm) virtual machine running on Proxmox. I use it as a internal DNS router & DHCP server which makes dns much easier in my case - due to my internet provider trying to force me to use there dns servers. This setup is a little weird and in-order to get everything to work a couple extra steps are need.

Will need to setup your pihole as a dhcp server, disable the existing dhcp server on the router, reserve static ip addressed for proxmox and pihole so that it can connect to the gateway, set the pihole as primary dns server on proxmox, set proxmox to use dhcp rather than static ip and finally set pihole VM to automatically boot first so that when it connects to the gateway devices connected to the gateway are issued ip address from the pihole.

Warning

If you are using pihole for DHCP / DNS, keep in mind if the device goes down that is hosting your pihole server, so will your DNS / DHCP. This May prevent you from connecting to your network until you re-enable a dhcp server such as the one in your router.

  • reserve a ip address in router/gateway for proxmox server & pihole

reserved_ip_example.png

  • set pihole to enable DHCP

pihole_dhcp_example.png

  • set proxmox to get DHCP on boot rather than Static IP which is default
root@laptop-proxmox:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

iface enp3s0 inet manual

auto vmbr0
iface vmbr0 inet dhcp
        bridge-ports enp3s0
        bridge-stp off
        bridge-fd 0

iface wlp4s0 inet manual
  • set proxmox default DNS server to pihole reserved address

proxmox_dns_example.png

  • set pihole to automatically start on boot with highest priority boot order

pihole_boot_order.png

  • set sattic ip and gateway info for pihole netwoking configuration '

pihole_network_settings_proxmox_example.png

  • Disable DHCP server in gateway / router settings

router_disable_dhcp_example.png

  • If router has option to set default DNS, set to pihole reserved address