Pi-hole ist eine DNS-Senke, die Werbe- und Tracking-Domains auf Netzwerkebene blockiert, bevor sie Ihre Geräte erreichen. Anstatt auf jedem Gerät eine Browser-Erweiterung zu installieren, läuft Pi-hole auf einem einzigen Server — einem Raspberry Pi, einer Linux-VM oder einem Docker-Container — und fängt DNS-Anfragen für bekannte Werbedomains ab, indem es eine leere Antwort zurückgibt. Jedes Telefon, Tablet, jede Smart-TV, Spielkonsole und jedes IoT-Gerät in Ihrem Netzwerk profitiert automatisch davon. Dieser Leitfaden behandelt Installation, Router-Konfiguration, Verwaltung von Blocklisten, lokales DNS und Leistungsoptimierung von Pi-hole in einer Heim- oder Kleinunternehmensumgebung.

Voraussetzungen

  • Ein Raspberry Pi (jedes Modell 2+), ein freier Linux-Rechner oder ein vorhandener Linux-Server/VM
  • Ubuntu 22.04/24.04, Debian 11/12 oder Raspberry Pi OS (64-Bit empfohlen)
  • Statische IP-Adresse für den Pi-hole-Host (per Router-DHCP-Reservierung oder manueller Konfiguration)
  • Zugang zum Router-Administrationspanel, um DNS-Einstellungen zu ändern
  • Grundlegende Linux-Kommandozeilenkenntnisse
  • curl installiert (sudo apt install curl)

Pi-hole installieren

Die schnellste Methode, Pi-hole auf einem physischen Linux-Host zu installieren, ist das offizielle Installationsskript:

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

Der interaktive Assistent fragt nach Ihrer Netzwerkschnittstelle, einem vorgelagerten DNS-Anbieter (Cloudflare 1.1.1.1, Google 8.8.8.8 oder andere), ob die Web-Administrationsoberfläche installiert werden soll, und nach einem Administratorpasswort. Für die meisten Optionen können Sie die Standardwerte übernehmen.

Nach der Installation notieren Sie die IP-Adresse Ihres Pi-hole. Das Skript zeigt sie am Ende an:

Pi-hole installation complete!
  Admin console: http://192.168.1.50/admin

Pi-hole mit Docker installieren

Wenn Sie Container bevorzugen, verwenden Sie das offizielle pihole/pihole-Image mit Docker Compose:

# docker-compose.yml
services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
    environment:
      TZ: "Europe/Berlin"
      WEBPASSWORD: "ihr_sicheres_passwort"
    volumes:
      - ./etc-pihole:/etc/pihole
      - ./etc-dnsmasq.d:/etc/dnsmasq.d
    restart: unless-stopped
docker compose up -d

Der Docker-Ansatz vereinfacht Updates (docker compose pull && docker compose up -d) und hält Pi-hole vom Host-Betriebssystem isoliert. Ein Hinweis: Port 53 kann in Konflikt geraten, wenn der Host systemd-resolved ausführt. Deaktivieren Sie es zuerst:

sudo systemctl disable --now systemd-resolved
sudo rm /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf

Router für Pi-hole konfigurieren

Pi-hole ist nutzlos, wenn Geräte ihre DNS-Anfragen nicht an ihn senden. Der sauberste Ansatz ist, den DHCP-Server Ihres Routers so zu konfigurieren, dass er die Pi-hole-IP als DNS-Server für das gesamte Netzwerk bekanntgibt.

  1. Melden Sie sich beim Administrationspanel Ihres Routers an (in der Regel 192.168.1.1 oder 192.168.0.1).
  2. Suchen Sie die DHCP-Einstellungen oder LAN-Einstellungen.
  3. Setzen Sie den Primären DNS auf die statische IP Ihres Pi-hole (z. B. 192.168.1.50).
  4. Optional: Setzen Sie den Sekundären DNS auf 1.1.1.1 als Fallback (Geräte umgehen Pi-hole, wenn er nicht erreichbar ist — leer lassen für striktes Blocking).
  5. Speichern und starten Sie den DHCP-Dienst neu (verbundene Geräte erhalten den neuen DNS bei der nächsten Lease-Erneuerung; erzwingen Sie es durch erneutes Verbinden).

Überprüfen Sie, ob das Blocking von einem beliebigen Gerät aus funktioniert:

nslookup doubleclick.net 192.168.1.50
# Sollte 0.0.0.0 zurückgeben (blockiert)

Blocklisten mit Gravity verwalten

Die Blocklisten-Datenbank von Pi-hole heißt Gravity. Die Standardinstallation enthält die StevenBlack-Hosts-Liste (~180.000 Domains). Durch Erweiterung wird die Blockierungsabdeckung deutlich verbessert.

Blocklisten über das Dashboard hinzufügen

  1. Öffnen Sie http://IHRE_PIHOLE_IP/admin und melden Sie sich an.
  2. Gehen Sie zu Adlists (im Bereich Gruppenverwaltung).
  3. Fügen Sie Blocklisten-URLs ein und klicken Sie auf Hinzufügen. Empfohlene Listen von firebog.net:
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts
https://v.firebog.net/hosts/Easylist.txt
https://v.firebog.net/hosts/Easyprivacy.txt
https://v.firebog.net/hosts/AdguardDNS.txt
  1. Nachdem Sie die Listen hinzugefügt haben, aktualisieren Sie Gravity, um sie herunterzuladen und zu kompilieren:
pihole -g

Eine typische Konfiguration mit 5-6 Listen blockiert zwischen 500.000 und 1.000.000 Domains. Vermeiden Sie zu viele überlappende Listen — ab etwa 1,5 Millionen Einträgen nehmen die Erträge rapide ab.

Automatische Updates planen

Fügen Sie einen wöchentlichen Cron-Job hinzu, um Gravity aktuell zu halten:

sudo crontab -e
# Fügen Sie diese Zeile hinzu:
0 3 * * 0 pihole -g > /var/log/pihole_gravity.log 2>&1

Vergleich: Pi-hole vs. Alternativen

FunktionPi-holeAdGuard HomeNextDNSBrowser-Erweiterung
Vollständige NetzwerkabdeckungJaJaJaNein (nur Browser)
Selbst gehostetJaJaNein (Cloud)N/A
IoT/TV-BlockingJaJaJaNein
EinrichtungskomplexitätMittelMittelGeringSehr gering
Benutzerdefiniertes lokales DNSJaJaBegrenztNein
DNSSEC-UnterstützungJaJaJaNein
Regex-BlockingNeinJaBegrenztJe nach Erweiterung
KostenKostenlosKostenlosKostenlos/kostenpflichtigKostenlos/kostenpflichtig

AdGuard Home ist eine interessante Alternative mit Regex-Blocking und einer moderneren Oberfläche. NextDNS ist ausgezeichnet, wenn Sie keinen Server warten möchten. Pi-hole setzt sich bei selbst gehosteten Setups mit voller Kontrolle durch.

Praxisbeispiel: Heimnetzwerk mit über 30 Geräten

Sie verwalten ein Heimnetzwerk mit Smart-TVs, Smartphones, Tablets, mehreren Linux-Servern und IoT-Geräten wie smarten Glühbirnen und Kameras. Vor Pi-hole zeigen die DNS-Logs Ihres Routers ständigen Datenverkehr zu googleadservices.com, doubleclick.net und Telemetrie-Endpunkten des Smart-TV-Herstellers.

Nach dem Einsatz von Pi-hole auf einem Raspberry Pi 4 mit der statischen IP 192.168.1.50:

  • Der DHCP Ihres Routers gibt 192.168.1.50 als DNS bekannt.
  • Jedes Gerät beginnt automatisch Pi-hole zu nutzen, ohne Neukonfiguration.
  • Das Dashboard zeigt, dass 25-40 % aller DNS-Anfragen blockiert werden — hauptsächlich Werbung und Telemetrie.
  • Sie fügen lokale DNS-Einträge hinzu, damit nas.home die IP Ihres NAS auflöst und plex.home auf Ihren Medienserver zeigt.
  • Ihre Smart-TV hört auf, mit Analyse-Servern zu kommunizieren.

Das Anfragen-Log von Pi-hole ermöglicht es Ihnen, genau zu prüfen, welche Domains jedes Gerät abfragt — unschätzbar wertvoll, um unerwarteten Netzwerkverkehr von IoT-Geräten zu erkennen.

Lokales DNS und CNAME-Einträge

Eine der unterschätzten Funktionen von Pi-hole ist die Möglichkeit, als lokaler DNS-Resolver für Homelab-Hostnamen zu dienen. Navigieren Sie im Dashboard zu Local DNS:

  • DNS-Einträge — ordnet Hostnamen IPs zu (z. B. nas.home → 192.168.1.100)
  • CNAME-Einträge — erstellt Aliase (z. B. dateien.home → nas.home)

So können Sie auf Dienste per Name statt per IP-Adresse zugreifen — besonders nützlich, wenn sich IP-Adressen ändern.

Stolperfallen und Sonderfälle

Pi-hole fällt aus und das Internet funktioniert nicht mehr. Das passiert, wenn Sie Pi-hole als einzigen DNS konfigurieren und er abstürzt oder der Host neu startet. Lösungen: Richten Sie eine zweite Pi-hole-Instanz ein oder konfigurieren Sie einen Fallback-DNS in Ihrem Router. Für kritische Umgebungen betreiben Sie zwei Pi-hole-Instanzen.

HTTPS-Werbung wird nicht blockiert. Pi-hole verarbeitet nur DNS. Es kann HTTPS-Datenverkehr nicht inspizieren und keine Werbung blockieren, die vom selben Domain wie der Inhalt ausgeliefert wird (wie YouTube-Werbung, die Subdomains von youtube.com verwendet). Dafür benötigen Sie weiterhin eine Browser-Erweiterung wie uBlock Origin.

Clients ignorieren Ihre DNS-Einstellungen. Manche Geräte (Chromecast, Google Home) haben Googles IP 8.8.8.8 fest einprogrammiert. Sie können diese mit einer Firewall-Regel abfangen:

# Gesamten DNS-Datenverkehr zu Pi-hole umleiten (erfordert iptables auf Router/Firewall)
iptables -t nat -A PREROUTING -i br0 -p udp --dport 53 ! -d 192.168.1.50 -j DNAT --to 192.168.1.50:53
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 53 ! -d 192.168.1.50 -j DNAT --to 192.168.1.50:53

Gravity-Update schlägt nach einem System-Update fehl. Nach einem Upgrade des Host-Betriebssystems führen Sie pihole -r (Reparatur) aus, um Pi-hole-Konfigurationsdateien wiederherzustellen.

Docker-Container verliert Konfiguration beim Neustart. Mounten Sie immer /etc/pihole und /etc/dnsmasq.d als Volumes — verlassen Sie sich niemals auf das Container-Dateisystem für persistente Daten.

Fehlerbehebung

Werbung erscheint weiterhin nach der Konfiguration. Prüfen Sie: (1) Verwendet das Gerät wirklich die Pi-hole-IP als DNS? Führen Sie nslookup google.com aus und schauen Sie auf die Server:-Zeile. (2) Hatte das Gerät eine zwischengespeicherte DNS-Antwort? Leeren Sie den DNS-Cache des Geräts. (3) Wird die Werbung vom selben Domain wie der Inhalt ausgeliefert?

Pi-hole-Dashboard gibt 404 zurück. Der Webserver lighttpd läuft möglicherweise nicht. Neustart: sudo systemctl restart lighttpd.

Gravity-Update schlägt mit Zertifikatsfehlern fehl. Die CA-Zertifikate Ihres Hosts sind möglicherweise veraltet. Lösung: sudo apt update && sudo apt install ca-certificates.

Hohe Anfragelatenz. Pi-hole fügt ~1ms Latenz hinzu. Wenn Sie deutlich mehr beobachten, prüfen Sie, ob der Anfrage-Cache aktiviert ist (standardmäßig aktiviert) und ob Ihr vorgelagerter DNS-Anbieter reaktionsfähig ist.

Pi-hole-Status prüfen:

pihole status
pihole -c          # Echtzeit-Statistiken
pihole tail        # Live-Anfragen-Log
pihole -q beispiel.com  # Testen, ob eine Domain blockiert ist

Zusammenfassung

  • Pi-hole ist eine DNS-Senke, die Werbung und Tracker für alle Netzwerkgeräte blockiert, ohne auf jedem Gerät Software installieren zu müssen
  • Installieren Sie es mit dem Einzeiler-Skript auf jedem Debian/Ubuntu-Linux-Host oder setzen Sie es über Docker Compose ein
  • Weisen Sie dem Pi-hole-Host eine statische IP zu und konfigurieren Sie den Router-DHCP so, dass er diese als DNS bekannt gibt
  • Erweitern Sie die Abdeckung durch Hinzufügen kuratierter Blocklisten von firebog.net und führen Sie pihole -g aus, um Gravity zu aktualisieren
  • Nutzen Sie die lokale DNS-Funktion von Pi-hole, um Homelab-Diensten einprägsame Namen zu geben
  • Pi-hole kann keine HTTPS-Werbung blockieren, die vom selben Domain wie der Inhalt stammt (YouTube); kombinieren Sie es mit uBlock Origin im Browser für vollständige Abdeckung
  • Für Redundanz betreiben Sie eine zweite Pi-hole-Instanz oder konfigurieren Sie einen Fallback-DNS, damit der Internetzugang auch bei einem Pi-hole-Ausfall erhalten bleibt

Verwandte Artikel