Nie wieder Werbung: Pi-hole als Netzwerk-Adblocker
Browser-Adblocker wie uBlock Origin sind großartig – aber sie schützen nur einen Browser auf einem Gerät. Was ist mit deinem Smart-TV, deinem Handy, dem Tablet der Kinder? Die Lösung: Pi-hole, ein DNS-basierter Adblocker, der Werbung im gesamten Netzwerk blockiert, bevor sie überhaupt geladen wird.
Das Beste: Du brauchst keinen Raspberry Pi dafür. Ein normaler PC, ein NAS oder ein VPS mit Docker reicht völlig aus.
🧠 Wie funktioniert Pi-hole?
Jedes Gerät im Netzwerk fragt einen DNS-Server, um Domainnamen (z.B. ads.google.com) in IP-Adressen aufzulösen. Pi-hole schaltet sich als DNS-Server dazwischen und blockiert bekannte Werbe- und Tracking-Domains, bevor sie geladen werden.
| Ohne Pi-hole | Mit Pi-hole |
|---|---|
| Browser fragt DNS → bekommt IP → lädt Werbung | Browser fragt Pi-hole → Domain geblockt → keine Werbung |
| Nur einzelne Browser geschützt | Alle Geräte im Netzwerk geschützt |
| Tracker laden im Hintergrund | Tracker werden DNS-seitig blockiert |
🛠️ Setup: Pi-hole mit Docker Compose
1. Projektordner erstellen
mkdir my-pihole && cd my-pihole
2. Docker Compose Konfiguration
my-pihole/docker-compose.yml:
version: '3.8'
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "8080:80/tcp"
environment:
TZ: 'Europe/Berlin'
WEBPASSWORD: 'dein-sicheres-passwort'
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
restart: unless-stopped
3. Starten
docker compose up -d
Das war's! Pi-hole läuft jetzt. Öffne das Dashboard unter:
http://localhost:8080/admin
⚠️ 📸 SCREENSHOT ANFRAGE: Hier einen Screenshot des Pi-hole Admin-Dashboards einfügen, mit der Übersicht der geblockten Domains und Query-Statistiken.
⚙️ Dein Netzwerk umstellen
Damit Pi-hole wirkt, müssen die Geräte im Netzwerk Pi-hole als DNS-Server verwenden. Dafür gibt es zwei Wege:
Option A: Gerät einzeln (zum Testen)
Stelle auf einem einzelnen Gerät den DNS auf die IP deines Pi-hole-Servers:
Linux/Mac (temporär):
# Ersetze 192.168.1.100 durch deine Server-IP
sudo sh -c \
'echo "nameserver 192.168.1.100" > /etc/resolv.conf'
Windows: Netzwerkeinstellungen → Adapter → IPv4 → DNS auf die Server-IP setzen.
Option B: Router (für alle Geräte)
Die beste Lösung: Ändere den DNS-Server in deinem Router auf die IP deines Pi-hole-Servers. Damit sind automatisch alle Geräte im Netzwerk geschützt – auch Smart-TVs, Smartphones und IoT-Geräte.
💡 Tipp: Die Einstellung findest du bei den meisten Routern unter Internet → DNS-Server oder LAN → DHCP → DNS.
📋 Nützliche Befehle
| Befehl | Beschreibung |
|---|---|
docker compose up -d |
Pi-hole im Hintergrund starten |
docker compose down |
Pi-hole stoppen |
docker compose logs pihole |
Logs anzeigen |
docker exec pihole pihole status |
Status prüfen |
docker exec pihole pihole -g |
Filterlisten aktualisieren |
🛡️ Zusätzliche Blocklisten hinzufügen
Pi-hole kommt mit einer Standard-Blockliste, aber du kannst jederzeit weitere hinzufügen. Im Admin-Dashboard unter Group Management → Adlists kannst du URLs einfügen.
Empfohlene Listen:
| Liste | URL | Domains |
|---|---|---|
| Steven Black | https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts |
~130.000 |
| Firebog Ticked | https://v.firebog.net/hosts/lists.php?type=tick |
Kuratiert |
| OISD | https://dbl.oisd.nl |
~140.000 |
Nach dem Hinzufügen Filterlisten aktualisieren:
docker exec pihole pihole -g
📊 Was bringt's? Echte Zahlen
In einem typischen Heimnetzwerk mit 4 Personen kannst du mit diesen Ergebnissen rechnen:
| Metrik | Typischer Wert |
|---|---|
| DNS-Anfragen pro Tag | 15.000 – 30.000 |
| Geblockte Anfragen | 20 – 35% |
| Durchschnittliche Blockzeit | < 1ms |
| Seitenlade-Verbesserung | 10 – 30% schneller |
Das bedeutet: Tausende Werbe- und Tracking-Anfragen werden pro Tag geblockt – und deine Seiten laden merklich schneller, weil der ganze Werbemüll gar nicht erst geladen wird.
⚠️ Wichtige Hinweise
[!CAUTION] WARNUNG: Host-weiter DNS-Ausfall möglich! Die folgenden Befehle deaktivieren das Standard-DNS-System (
systemd-resolved) von Ubuntu, damit Pi-hole auf Port 53 lauschen kann. PROBLEM: Wenn du dies tust, kann dein Server selbst keine Domain-Namen mehr auflösen (z.B. fürapt update), sofern die/etc/resolv.confnicht korrekt auf einen externen Nameserver (z.B. 1.1.1.1) zeigt.Sichererer Weg: Nutze stattdessen das Port-Binding an eine spezifische IP-Adresse oder stelle sicher, dass du weißt, wie man die Nameserver-Konfiguration manuell wiederherstellt.
# Deaktivieren nur wenn du absolut sicher bist und Pi-hole die DNS-Rolle übernimmt!
# sudo systemctl stop systemd-resolved
# sudo systemctl disable systemd-resolved
- Passwort ändern: Das Web-Passwort kannst du jederzeit ändern:
docker exec pihole pihole -a -p neues-passwort
- Whitelist: Falls eine Seite nicht mehr funktioniert, kannst du sie im Dashboard unter Whitelist freischalten.
Fazit
Pi-hole ist eines der mächtigsten Self-Hosting-Projekte, die du in 5 Minuten aufsetzen kannst. Es blockiert Werbung und Tracker netzwerkweit, beschleunigt das Browsing und schützt deine Privatsphäre – und das alles mit einer einzigen docker-compose.yml.
Einmal eingerichtet, vergisst du, dass es da ist – bis du bei Freunden surfst und wieder Werbung siehst. 😉
Login