Pi-hole DNS

Network-wide ad blocking and recursive DNS resolver.

Overview

PropertyValue
Host192.168.1.50 (CT100 β€œpihole”)
TypeDocker in LXC (Proxmox)
Ports53 (DNS), 80/443 (web)

Access

Architecture

Network clients β†’ Pi-hole (:53) β†’ Unbound (:5335) β†’ Root servers

Unbound Recursive DNS

  • No upstream providers β€” queries root/TLD/authoritative servers directly
  • Privacy β€” no Quad9/Cloudflare/Google sees your queries
  • VPN killswitch compatible β€” DNS stays on LAN, no external leakage

Configuration Files

FileLocation
Pi-hole config/opt/pihole/etc-pihole/pihole.toml
Unbound config/etc/unbound/unbound.conf.d/pi-hole.conf

Pi-hole Upstream (recursive)

upstreams = ["127.0.0.1#5335"]  # Local Unbound

Unbound Settings

  • Port: 5335
  • DNSSEC: enabled
  • qname-minimisation: yes
  • Prefetch: enabled

Useful Commands

# Inside CT100
docker exec pihole pihole status
docker exec pihole pihole -t        # tail query log
unbound-control stats               # Unbound stats
systemctl status unbound