Pi-hole

Home Networking & Privacy

A DNS filtering service on your own Linux host that blocks specified domains for devices using the service.

Use with conditions
Last updatedRelease 2026-07-06
Open source licenseEUPL-1.2 (Pi-hole Core; older versions and other components have separate scopes)
PlatformsMaintained Alpine, Armbian, Debian, CentOS Stream, Fedora, Raspberry Pi OS and Ubuntu
DeploymentSelf-hosted service

About this project

Pi-hole filters domain requests at the DNS stage of a network connection. Devices need to use it for DNS, for example through the relevant router configuration or settings on individual clients. Its filtering therefore applies to clients actually using that resolver. The application works with domain requests rather than installing a separate filtering extension in every browser.

The administration interface provides query records and statistics covering clients, domains, caching and forwarding. Users maintain allowed or blocked domains and regular expression rules. Pi-hole can also provide DHCP, but the project instructs users to disable the existing DHCP service when choosing that mode. DNS filtering and address assignment are separate network functions even when one application provides both.

The host needs a supported Linux environment and a stable IP address, obtained through a static configuration or DHCP reservation. DNS uses TCP and UDP port 53, so other services using those ports must be considered. These requirements make the host address and local network configuration part of the preparation for running the service and connecting clients to it.

Decision guide
01

Why it is worth a look

  • Network-wide domain filtering
  • Web administration and query inspection
02

Before you use it

  • Requires supported Linux and a static address or DHCP reservation; official requirements specify 512 MB memory and at least 2 GB storage
  • Configure device or router DNS before use; when using Pi-hole DHCP, the official instructions require disabling the router's existing DHCP first
  • Judgment: Outages or incorrect filtering affect connectivity of dependent devices; test on one device first
  • Keep the original DNS/DHCP settings and avoid replacing the whole home network configuration without a recovery path
Manual setupHigh
With an AI agentHigh
DeploymentSelf-hosted service
Additional requirements2 confirmed; others not verified

Maintained and officially supported Linux; 512 MB memory; at least 2 GB storage, with 4 GB recommended; Static IP address or DHCP reservation; No conflicts on DNS port 53 TCP/UDP; check administration ports and access scope; A recovery path to the original device or router DNS/DHCP settings; Confirmed requirements: Command line, An always-on device or service; Some requirements have not been verified. Check the official setup instructions.

03

What it can do

  • Network-wide domain filtering
  • Web administration and query inspection
  • Optional DHCP service

Who it fits

Good for

Home network administrators who understand DNS and will maintain an always-on device

Not a fit

Judgment: Users unable to change network settings, unwilling to maintain the service, or unable to accept home connectivity interruptions

Getting started

  1. Record existing DNS/DHCP settings, then prepare supported Linux and a static address
  2. Read the official installation script, choose the documented download-then-run method and check DNS port conflicts
  3. After installation, point only one test device at Pi-hole and check browsing, allowlists and recovery
  4. After affected users accept the change, deploy gradually following router documentation; do not run two DHCP services together

Alternatives to consider