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
curlinstalliert (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.
- Melden Sie sich beim Administrationspanel Ihres Routers an (in der Regel
192.168.1.1oder192.168.0.1). - Suchen Sie die DHCP-Einstellungen oder LAN-Einstellungen.
- Setzen Sie den Primären DNS auf die statische IP Ihres Pi-hole (z. B.
192.168.1.50). - Optional: Setzen Sie den Sekundären DNS auf
1.1.1.1als Fallback (Geräte umgehen Pi-hole, wenn er nicht erreichbar ist — leer lassen für striktes Blocking). - 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
- Öffnen Sie
http://IHRE_PIHOLE_IP/adminund melden Sie sich an. - Gehen Sie zu Adlists (im Bereich Gruppenverwaltung).
- 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
- 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
| Funktion | Pi-hole | AdGuard Home | NextDNS | Browser-Erweiterung |
|---|---|---|---|---|
| Vollständige Netzwerkabdeckung | Ja | Ja | Ja | Nein (nur Browser) |
| Selbst gehostet | Ja | Ja | Nein (Cloud) | N/A |
| IoT/TV-Blocking | Ja | Ja | Ja | Nein |
| Einrichtungskomplexität | Mittel | Mittel | Gering | Sehr gering |
| Benutzerdefiniertes lokales DNS | Ja | Ja | Begrenzt | Nein |
| DNSSEC-Unterstützung | Ja | Ja | Ja | Nein |
| Regex-Blocking | Nein | Ja | Begrenzt | Je nach Erweiterung |
| Kosten | Kostenlos | Kostenlos | Kostenlos/kostenpflichtig | Kostenlos/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.50als 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.homedie IP Ihres NAS auflöst undplex.homeauf 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 -gaus, 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