Adblocker Deluxe! Mit Raspberry Pi und Pi-hole Werbung im gesamten Netzwerk blockieren
Dass sich Websites und Portale im Internet mit Werbung finanzieren, dagegen habe ich eigentlich nichts. Wie könnte ich auch, denn bitblokes.de finanziert seine Ausgaben ebenfalls mit Werbung. Ich habe aber etwas gegen zu aufdringliche Werbung und vor allen Dingen Tracking, gegen das Du Dich unterwegs auch mit den Adblockern von guten VPNs wie NordVPN* wehren kannst. Das Problem ist, dass man es sich als kleine Nischen-Website nicht wirklich aussuchen kann, weil der Aufwand sonst zu groß wird. Auf der anderen Seite kommen so gut wie gar keine Spenden rein, auf jeden Fall würden sie nicht einmal die Serverkosten decken. Ohne Werbung könnte ich bitblokes.de also auf eigene Kosten betreiben oder eben einstellen. Zumindest bemühe ich mich, dass Werbung den Lesefluss meiner Beiträge nicht beeinflusst. Lange Rede … Ich habe nichts gegen Werbung, sondern wie Werbung dem Leser heutzutage aufgezwungen wird. Die Entwickler von Pi-hole bezeichnen ihr Projekt als Schwarzes Loch für Werbung.
Der ganze Leitfaden ist sehr ausführlich. Deswegen sollten auch technisch weniger versierte Leute damit zurechtkommen und in der Lage sein, Pi-hole aufzusetzen.
Kurz gesagt: Du schreibst Raspberry Pi OS Lite mit dem Raspberry Pi Imager auf eine microSD-Karte, gibst dem Pi eine feste IP-Adresse und startest das Installations-Skript von Pi-hole. Danach trägst Du den Raspberry Pi im Router als DNS-Server ein. Pi-hole 6 bringt seinen Webserver selbst mit, die Admin-Oberfläche erreichst Du im Browser unter pi.hole/admin.
Hinweis: Pi-hole ist ein hervorragender Schutz im heimischen LAN. Bist Du aber unterwegs und nutzt fremde WLANs oder Hotspots, gibt es den Schutz vor Trackern, Malware und Werbung oft nicht. In solchen Fällen sind VPNs wie NordVPN* oder Surfshark* Gold wert, weil sie integrierte Adblocker bieten. Surfshark hat einen der besten grafischen Linux VPN Clients und der Adblocker lässt sich mit nur einem Klick aktivieren.

Gibt es Alternativen zu Werbung?
Die gibt es und wie gesagt reichen Spenden nicht aus. Portale wie Patreon kann ich mir derzeit auch nicht vorstellen, da meine Zeit momentan schlecht berechenbar ist. Sogenannte gesponserte Artikel sind auch eine Option, aber zu viele davon würden zu schnell die Inhalte des Auftritts aus dem Gleichgewicht bringen.
Persönlich habe ich 2018 gehofft, dass Projekte wie Oyster für die Zukunft Besserung schaffen. Besucher einer Website spenden sozusagen einen kleinen Teil ihrer CPU- sowie GPU-Ressourcen und damit werden dann Dateien in einem dezentralisierten und anonymen Ledger gespeichert. Die Besitzer der Website werden wiederum von den Storage-Nutzern bezahlt. Die Besucher der Website haben den Vorteil, dass sie einen werbefreien Auftritt besuchen können.
Daraus ist nichts geworden. Im Oktober 2018 wurden über den Smart Contract von Oyster rund drei Millionen neue PRL-Token erzeugt und sofort verkauft. Ausgelöst hat das laut Projekt eine Adresse, die der anonyme Gründer kontrollierte. Damit war Oyster am Ende. Einen ähnlichen Gedanken verfolgt der Browser Brave mit dem Basic Attention Token ($BAT)*: Wer Brave Rewards einschaltet, sieht auf Wunsch Werbung, bei der das Surfverhalten das Gerät nicht verlässt. Dafür gibt es BAT, mit denen Du Websites und Creator unterstützen kannst.
Zur Information: Damit Du ein Gespür für den Aufwand eines solchen Beitrags bekommst: Das dauert inklusive installieren, testen und schreiben mindestens einen vollen Tag.
Bleiben wir aber im Heute
Bis ähnliche Projekte Fuß fassen, muss man eben in den sauren Apfel beißen. Natürlich kannst Du Dich mit Werbeblockern wehren. Allerdings musst Du die sogenannten Adblocker auf jedem Gerät einzeln installieren. Das ist lästig und musst Du ein neues Gerät einrichten, ist das ein zusätzlicher Schritt.
Pi-hole funktioniert etwas anders und schützt Dein komplettes Netzwerk und somit Dich vor aufdringlicher Werbung. Bevor ich Dir die Schritt-für-Schritt-Installation präsentiere, muss oder möchte ich Dir aber erklären, wie Pi-hole grob funktioniert.
So funktioniert Pi-hole
Pi-hole ersetzt mittels pihole-FTL (baut auf dnsmasq auf) Deinen DNS-Server oder ist ein Mittelsmann zwischen Dir und Deinem gewünschten DNS-Server. Dabei nutzt Pi-hole Listen mit Domains, die Werbung ausliefern oder für Tracking der Anwender zuständig sind. Allein die vorgeschlagene Blockliste von StevenBlack enthält zehntausende Domains.
Rufst Du nun eine Website auf, dann laufen grob gesagt alle Anfragen an dort eingebettete und Werbung oder Tracking zuständige Domains ins Leere.
Dieser Ansatz hat Vorteile und in gewisser Weise auch Nachteile. Ich komme später zu den Nachteilen, wenn wir uns mit der Konfiguration von Pi-hole beschäftigen. Genauer gesagt im Kapitel mit den Whitelists und den Blacklists (heute Allow und Deny). Die Vorteile liegen auf der Hand.
Vorteile von Pi-hole
Für den Moment reicht es, wenn Du weißt, dass Pi-hole komplette Ad-Domains oder Tracking-Domains blockiert und auch kein Byte von diesen Anbietern herunterlädt. Das spart Bandbreite und es müssen weniger Anfragen abgearbeitet werden. Dadurch ist die Performance besser.
Weiterhin kannst Du Deinen DHCP-Server so konfigurieren, dass er die Maschine mit Pi-hole als DNS Server verwendet. Das ist das Killer Feature! Jedes Gerät, das sich in Deinem Netzwerk anmeldet ist somit automatisch geschützt oder dem Gerät wird Werbung erspart. Ich sage deswegen geschützt, weil Werbungsnetzwerke auch immer wieder missbraucht werden, um Malware zu verteilen. Natürlich ist das kein 100-prozentiger Schutz aber wir wollen den Cyberkriminellen so viele Hürden wie möglich in den Weg stellen.
Für viele ist es schon Schutz genug, wenn sie nicht von Werbung zugeballert und dadurch beeinflusst werden.
Pi-hole oder besser gesagt pihole-FTL könnte auch Deinen DNS Server komplett ersetzen. Auch dazu gehe ich später genauer drauf ein.
Raspberry Pi vorbereiten
Das Schwarze Loch für Werbung im Internet lässt sich unter anderem auf einem Raspberry Pi installieren. Das habe ich 2018 gemacht und für Testzwecke meinen Raspberry Pi 3 genommen. Das Projekt läuft aber unter vielen Linux-Distributionen. Bei sehr vielen Geräten im Netzwerk kann es vorkommen, dass der Raspberry Pi etwas überlastet wird. Somit brauchst Du vielleicht eine stärkere Maschine. Oder Du hast noch einen PINE64 rumliegen und das Ding nicht wie ich zur Android-TV-Box gemacht. Pi-hole läuft unter anderem mit Debian, Ubuntu, Fedora, CentOS Stream und Raspberry Pi OS.
Hinweis: Beim ersten Versuch 2018 habe ich aus Versehen Raspbian Jessie erwischt. Mach das nicht, das gibt nur Probleme. Berechtigungen stimmten nicht und nachdem ich sie hingebogen hatte, fiel dnsmasq auf die Schnauze … zum Glück habe ich irgendwann meinen Fehler bemerkt. Mit einem frischen Raspbian Stretch funktionierte die Sache sehr gut.
Nimm heute das aktuelle Raspberry Pi OS, denn Pi-hole unterstützt nur Systemversionen, die noch gepflegt werden. Offiziell nennen die Entwickler Raspberry Pi OS, Debian, Ubuntu, Fedora, CentOS Stream, Alpine und Armbian. Als Minimum reichen 2 GByte freier Speicher und 512 MByte RAM. Das erfüllt auch ein sparsamer Raspberry Pi Zero W.
Vorsicht!!! Die automatische Prozedur installierte bis Pi-hole 5 lighttpd auf Deinem System. Befinden sich andere Services auf dem jeweiligen Rechner, die mit nginx oder Apache laufen, könnte es zu Problemen kommen!
Seit Pi-hole 6 steckt der Webserver direkt in pihole-FTL, lighttpd und PHP braucht es nicht mehr. Belegt schon ein anderer Webserver Port 80 oder 443, weicht Pi-hole auf 8080 und 8443 aus. Sind auch diese Ports belegt, erreichst Du die Admin-Oberfläche erst, wenn Du den Port in der Einstellung webserver.port selbst festlegst.
Zunächst einmal habe ich mir damals das aktuelle Abbild von Raspbian Stretch Lite geholt. Warum Lite? Weil wir einen headless Service verwenden, der keine Desktop-Oberfläche und andere Software wie LibreOffice braucht.
Das Abbild kannst Du nach dem Download ganz einfach mit Etcher auf eine microSD-Karte spielen. Ist das fertig, schiebst Du die microSD-Karte in Deinen Raspberry Pi und startest ihn. Für die anfängliche Konfiguration sind natürlich Bildschirm und Tastatur nicht blöd.
Heute heißt das System Raspberry Pi OS und basiert auf Debian 13 (Trixie), Du nimmst die Variante Lite. Am einfachsten schreibst Du es mit dem Raspberry Pi Imager auf die microSD-Karte. Dort kannst Du vorab Benutzername, Passwort und SSH einstellen. Dann läuft der Pi von Anfang an headless.
Weiterhin benutze ich die Ethernet-Schnittstelle des Raspberry Pi. Der Pi 3 hätte zwar auch WLAN, aber die Ethernet-Schnittstelle sollte performanter sein. Mein Raspberry Pi 3 mit Pi-hole steht neben dem Router und deswegen reicht mir ein kurzes LAN-Kabel.
SSH aktivieren und Passwort ändern
Einen Standard-Anwender pi mit dem Passwort raspberry hat Raspberry Pi OS seit April 2022 nicht mehr. Benutzer und Passwort legst Du im Imager oder beim ersten Start selbst fest. Den Weg über raspi-config brauchst Du heute nur noch, wenn Du das Passwort später ändern oder SSH nachträglich einschalten willst.
Da wir den Remote-Zugang via SSH aktivieren, ändern wir sofort das Passwort. Auch wenn der Raspberry Pi nicht aus dem Internet erreichbar ist, gefiel uns der alte Standard pi / raspberry natürlich nicht. Sobald Du Dich angemeldet hast, rufe mittels
sudo raspi-config
die Konfiguration auf. Über die erste Option (1 System Options, S3 Password) hast Du die Möglichkeit, das Passwort für Deinen Anwender zu ändern.
Hast Du das erledigt, aktivierst Du noch den SSH Server. Öffne dazu in raspi-config die Option 3 Interface Options und dort findest Du I1 SSH. Hier aktivierst Du einfach den SSH Server. Du musst das nicht jedes Mal neu machen. Sobald aktiviert, startet sich der SSH Server mit jedem Neustart automatisch.
Nun kannst Du auf den Raspberry Pi via Netzwerk zugreifen. Bildschirm und Tastatur am Pi sind danach nicht mehr notwendig und er läuft headless. Von Linux aus greifst Du dann so auf den Raspberry Pi zu:
ssh pi@<IP-Adresse des Raspberry Pi>
Statt pi setzt Du den Benutzernamen ein, den Du im Imager oder beim ersten Start angelegt hast.
Die IP-Adresse findest Du via Konsole über den Befehl ip a, besser und für dieses Projekt notwendig ist eine feste IP-Adresse.
Feste IP-Adresse
Weiterhin solltest Du Deinem Raspberry Pi eine fixe IP-Adresse geben. Das kannst Du während der Konfiguration tun, musst dann aber sicherstellen, dass der DHCP-Server in Deinem Netzwerk die Adresse nicht anderweitig vergibt. Meine Geräte im Netzwerk, die eine feste IP-Adresse brauchen, hinterlege ich deswegen beim DHCP-Server. Das ist eine zentrale Stelle und damit stelle ich sicher, dass es nicht zu Konflikten bei den IP-Adressen kommt.
Wie Du das machst, bleibt Dir überlassen. Es gibt einige Optionen und viele Wege führen nach Rom. Um die feste IP-Adresse im DHCP Server zuweisen zu können, brauchst Du möglicherweise die MAC-Adresse Deines Pi. Es hilft der Befehl ip link (früher ifconfig).
Soll der Pi die feste Adresse selbst setzen, geht das unter Raspberry Pi OS über den NetworkManager mit nmcli. Wie das geht, steht im Beitrag Statische IP-Adresse bei Raspberry Pi OS Bookworm. Die Reservierung im Router ist aber meist der einfachere Weg.
Pi-hole auf einem Raspberry Pi installieren: Schritt für Schritt
Ich habe mich zunächst über den Befehl
sudo su
zum Anwender root gemacht, da das Installations-Skript damals sonst gemeckert hat. Im Anschluss habe ich den Raspberry Pi auf den aktuellen Stand gebracht:
sudo apt update sudo apt upgrade
Das kann eine Weile dauern, ist bei Raspberry Pi OS Lite aber nicht so tragisch. Im Anschluss führst Du einfach diesen Befehl aus:
curl -sSL https://install.pi-hole.net | bash
Die Entwickler weisen darauf hin, dass eine Pipe via Bash gefährlich sein kann. Wer absolut sicher gehen möchte, kann auch den Open Source Code einsehen und das Installations-Skript lokal laufen lassen. Ich habe es via curl gemacht und es hat funktioniert.
Root musst Du dafür heute nicht mehr sein: Startest Du das Skript als normaler Anwender, ruft es sich selbst mit sudo neu auf. Der lokale Weg sieht so aus:
wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.shDie Installation beginnt
Zunächst einmal gibt es ein paar Informationen. Die Installation von Pi-hole wird Deinen Raspberry Pi in einen Adblocker für das gesamte Netzwerk verwandeln. Das ist schön so und genau das wollen wir.
Dann gibt es den Hinweis auf die feste IP-Adresse. Wir haben das schon besprochen.
Pi-hole 6 richtet die feste Adresse nicht selbst ein, sondern fragt nur, ob sie schon vergeben ist. Hat Dein Pi mehrere Netzwerkschnittstellen, wählst Du danach die aus, über die Pi-hole arbeiten soll. Beim LAN-Kabel ist das eth0.
An dieser Stelle suchst Du Dir einen DNS-Anbieter aus, den der Raspberry Pi sozusagen nutzt. Das Gerät wird ja kein kompletter DNS Server, sondern dient als Mittelsmann, der wiederum andere DNS Server um Informationen bittet. Ich habe 2018 an dieser Stelle Custom gewählt, weil ich FreeDNS nutzen wollte.
Die Adressen von FreeDNS waren 37.235.1.174 und 37.235.1.177. Die konnte ich durch ein Komma getrennt in der Pi-hole-Konfiguration hinterlegen.
Den Dienst gibt es nicht mehr: Die Domain steht zum Verkauf und die Server antworten nicht. Nimm heute einen Anbieter aus der Liste, etwa Quad9 (filtered, DNSSEC) oder Cloudflare (DNSSEC). Wie Du ganz ohne fremden Anbieter auskommst, steht weiter unten bei der eigenen DNS-Auflösung.
Weitere Konfigurationsschritte
Im Anschluss wurdest Du 2018 gefragt, ob IPv4 und IPv6 abgearbeitet werden sollen. Konnte man so stehen lassen. Sollte IPv6 noch nicht unterstützt sein, läuft das einfach ins Leere. Heute fragt das Skript das nicht mehr.
Da ich die IP-Adresse über den DHCP Server fest zuweisen lasse, konnte ich sie an dieser Stelle einfach übernehmen. Verneinte man die IP-Adresse, durfte man damals eine feste zuweisen. Das macht das Skript heute nicht mehr. Stelle aber sicher, dass sie keinen Konflikt auslöst.
Auch wenn die Web-Schnittstelle damals manchmal etwas komisch reagiert hat, habe ich sie dennoch installiert. Damit ist es einfach, den Service temporär zu deaktivieren.
Bei Pi-hole 6 gehört die Web-Schnittstelle fest dazu, die Frage entfällt. Neu ist dafür die Frage nach den Blocklisten. Das Skript schlägt die Sammelliste von StevenBlack vor. Übernimm sie mit Yes, weitere Listen kannst Du später ergänzen.
Protokollierst Du die Anfragen, siehst Du sehr schön, wie viele sogenannte Queries an Domains Pi-hole blockiert. Zu Testzwecken ist es auf jeden Fall nicht schlecht. Kann man später immer noch deaktivieren.
Danach wählst Du den Privatsphäre-Modus. Mit Show everything siehst Du im Query Log alle Domains und Clients. Die anderen Stufen blenden Domains, Clients oder beides aus.
Im Anschluss holt die Installationsroutine Pakete und installiert die notwendige Software sowie alle Abhängigkeiten.
Ist die Installation abgeschlossen, bekommst Du eine Zusammenfassung. Mache vielleicht einen Screenshot davon, oder schreibe Dir zumindest Admin-Adresse und Passwort auf.
Das Passwort für die Admin-Oberfläche erzeugt Pi-hole dabei zufällig.
Auch die Konsole bietet noch einmal eine Zusammenfassung und verrät, wie sich das Passwort für die Admin-Oberfläche später ändern ließe:
sudo pihole setpassword
DNS-Adresse umstellen
Ab sofort kannst Du DNS von Deinem Netzwerk auf die IP-Adresse des Raspberry Pi mit Pi-hole umstellen. Entweder machst Du das manuell oder eben im DHCP-Server und damit würde das gesamte Netzwerk versorgt. Zu Testzwecken würde ich Dir raten, bei Deinem Desktop die DNS-Konfiguration umzustellen.
Ansonsten melde Dich bei Deinem Router an und suche die Sektion mit DHCP. Jeder Router ist unterschiedlich, aber dort gibt es sicherlich irgendeine Option, die den Clients die DNS-Adresse(n) zuweist. Hier stellst Du auf die Adresse von Pi-hole um. Bei mir war der DNS Server im Router 2018 noch auf FreeDNS gestellt, weil ich wie oben angesprochen meinen Desktop zu Testzwecken durch Pi-hole leitete. Zum Umstellen käme in meinem Fall bei Default DNS die Adresse 192.168.100.61 (IP-Adresse Raspberry Pi) rein.
Lässt sich im Router kein eigener DNS-Server für die Clients eintragen, übernimmt das der DHCP-Server von Pi-hole. Wie das geht, steht weiter unten im Abschnitt zum DHCP Server.
Die Admin-Oberfläche von Pi-hole
Die Admin-Oberfläche läuft und Du erreichst sie mit dem Browser via pi.hole/admin oder <IP-Adresse des Raspberry Pi>/admin. Mit dem vorher erhaltenen Passwort meldest Du Dich an. Wie Du oben links siehst, läuft alles und mir wird sogar die CPU-Temperatur meines Geräts angezeigt. Ebenso sehe ich Load und Memory Usage (Speicherauslastung). Das sind wertvolle Informationen
Ist Port 80 belegt, hängst Du :8080 an die Adresse. Pi-hole 6 hat eine komplett überarbeitete Oberfläche, deren Einstellungen in einen Basic- und einen Expert-Modus geteilt sind. Die Bereiche heißen aber ähnlich wie auf den Bildschirmfotos von 2018.
Nach der Anmeldung sieht die Geschichte so aus und Du merkst, dass das System schon ein bisschen bei mir läuft. Das Menü auf der linken Seite bietet diverse Möglichkeiten und ich möchte auf einige genauer eingehen. Entweder sind sie sehr wichtig oder ich fand sie am Anfang etwas verwirrend und möchte sie deswegen genauer erläutern.
Der rote Kasten oben rechts zeigte damals, dass 121.059 Domains in das Schwarze Loch geschickt wurden.
Query Log
Klickst Du auf Query Log, siehst Du genau, welche Anfragen gestellt wurden. Grün ist OK und rot ist eben blockiert. In dieser Ansicht hast Du rechts die Möglichkeit, die jeweilige Domain in die jeweilige und persönliche Whitelist (nicht gesperrt) oder Blacklist (gesperrt) aufzunehmen. Das ist praktisch, es gab 2018 aber immer wieder Berichte, dass Whitelisting und Blacklisting über die Admin-Oberfläche nicht funktioniert. In Pi-hole 6 heißen die Schaltflächen Allow und Deny.
Whitelist (heute Allow)
Domains in der Whitelist sind von der Blockade ausgenommen. Der Knackpunkt hier ist, dass die Whitelist von Pi-hole nicht wie eine in einem herkömmlichen Adblocker funktioniert. Nimmst Du bei uBlock Origin zum Beispiel bitblokes.de in die Whitelist auf, weil Du mich unterstützen möchtest, dann darf auf meiner Domain Werbung angezeigt werden.
Würdest Du aber bitblokes.de in Deine Whitelist bei Pi-hole aufnehmen, wäre die sowieso schon nicht geblockte Domain zusätzlich nicht geblockt. Meine Domain bitblokes.de liefert aber keine Werbung aus, sondern das übernehmen andere. Willst Du also Werbung auf bitblokes.de zulassen, müsstest Du alle Domains in die Whitelist aufnehmen, die bei mir für die Auslieferung der Werbung zuständig sind. Tust Du das, dann wird die Werbung auch auf vielen anderen Websites wieder angezeigt.
Ein Zugriff auf Spiegel Online für Leute, die sich für etwas Besseres halten, endete so:
Um Spiegel Online wieder lesen zu können, müsste ich also alle Domains in die Whitelist aufnehmen, diese Meldung auslösen. Ich habe damit aus Neugier sogar mal angefangen. Das zieht aber einen Rattenschwanz nach sich und immer mehr Domains müsste ich in die Whitelist aufnehmen. Viel Spaß beim Ausprobieren! Lese ich Spiegel Online eben nicht, ist kein großer Verlust. Habe ich bisher auch nicht gebraucht. Die Bild hat ja mit dieser Praxis angefangen und von daher könnte man Pi-hole sogar als Gegenmaßnahme zur Verbreitung von Fake News oder alternativen Fakten sehen.
Das Problem bei der Benutzung von Pi-hole ist eigentlich, dass Du gewisse Projekte nicht einzeln unterstützen kannst. Genau deswegen hoffe ich, dass es künftig Alternativen zu der zugegeben sehr lästigen Werbung gibt.
Blacklist (heute Deny)
Die Blacklist ist das Gegenteil zur Whitelist und alle darin angegebenen Domains werden blockiert. Hier darfst Du bestimmte Domains oder Wildcard-Domains anlegen. Bei einer Wildcard-Domain würden auch alle Sub-Domains blockiert und so weiter. Die Funktion ist sehr sinnvoll, denn damit kannst Du den Zugriff auf bestimmte Domains in Deinem Netzwerk komplett blockieren. Die Blacklist kannst Du zum Beispiel als elterliche Kontrolle einsetzen. Natürlich lässt sich das sehr leicht aushebeln, wenn jemand einen eigenen DNS Server konfigurieren kann und damit Pi-hole umgeht.
In Pi-hole 6 findest Du beide Listen unter Group Management und Domains. Dort legst Du fest, ob ein Eintrag als Allow oder Deny gilt und ob er exakt oder als RegEx greift.
Das funktioniert auch ganz gut. Ein Beispiel aus meiner Initiative Schöner Surfen: Die gesamte Domain bild.de war 2018 via Wildcard blockiert.
Hinweis: Natürlich würde auch ein VPN, das eigene DNS Server verwendet, die Blockaden sowie Whitelist und Blacklist umgehen.
Deaktivieren und aktivieren
Über den Menüpunkt Disable (heute Disable Blocking) darfst Du Pi-hole deaktivieren. Dafür gibt es mehrere Optionen und ich finde die Funktion sehr schön.
- Permanently (heute Indefinitely) ist ein dauerhaftes Deaktivieren: Du musst Pi-hole manuell wieder aktivieren.
- 10 Sekunden, 30 Sekunden oder 5 Minuten: Damit deaktivierst Du den Service für eine gewisse Zeit. Nach Ablauf wird Pi-hole automatisch wieder aktiviert.
- Custom time: Hier darfst Du die Zeit individuell festlegen.
Tools und Listen aktualisieren
Bei den Tools möchte ich lediglich einen Unterpunkt erwähnen. Die anderen darfst Du selbst erforschen. Via Update Lists (heute Update Gravity) aktualisierst Du die Blocklisten. Das kann man ab und zu ausführen, um das System einfach aktuell zu halten. Einmal pro Woche erledigt Pi-hole das ohnehin selbst. Auf die Kommandozeilen-Tools gehe ich später noch ein.
Wichtig: Möchtest Du noch weitere Blocklisten hinzufügen, wirst Du unter firebog.net fündig. Dort gibt es einige, die bekannte Domains von Ransomware, Malware und weiterem Unfug enthalten. Die Listen werden meist regelmäßig aktualisiert.
Die Adresse einer Liste trägst Du unter Group Management und Lists ein, danach startest Du Update Gravity.
Settings oder Einstellungen
Sehen wir uns zum Schluss den Menüpunkt mit den Settings oder Einstellungen an, der wiederum in mehrere Tabs unterteilt ist. Unter System kannst Du zum Beispiel den DNS-Resolver neu starten und die Logs leeren. Neustart und Herunterfahren des Raspberry Pi gibt es dort seit Pi-hole 6 nicht mehr. Das Query Logging schaltest Du unter Privacy ab. Ich habe die Funktion nach meinen Tests und dem Abschluss des Beitrags deaktiviert. Das sind Ressourcen, die ich nicht brauche. Ist sicherlich Geschmackssache, aber ich will das System so schlank wie möglich halten. Würde Pi-hole auf einer sehr leistungsstarken Maschine laufen, wäre es mir egal. Der Raspberry Pi 3 ist aber bekanntlich kein Supercomputer und deswegen muss er auch nicht so viel schuften. 🙂
Unter Block Lists (heute Group Management, Lists) hinterlegst Du die Listen, mit denen sich Pi-hole abgleicht. Das ist keine Magie dahinter. Bei DNS kannst Du die DNS Server ändern. Du erinnerst Dich sicher, dass ich FreeDNS hinterlegt hatte. Taugt Dir das nicht mehr, kannst Du es an dieser Stelle ändern. Weiterhin kannst Du das Verhalten einstellen, wie das System auf den Schnittstellen horchen soll. Bei Permit all origins musst Du aufpassen, dass Dein Raspberry Pi sicher hinter einer Firewall steht.
Du kannst auch DNSSEC aktivieren. Die Log-Dateien werden dann aber viel größer und Dein DNS Resolver muss DNSSEC unterstützen. Das kannst Du hier testen. Bist Du Dir nicht ganz sicher, was Du hier tun musst oder sollst, dann lasse es bei den Standard-Einstellungen.
DHCP Server
Ziemlich cool ist, dass Pi-hole als DHCP Server dienen kann. Du könntest den Raspberry Pi sozusagen als DNS und DHCP Server nutzen und Dein Router bräuchte diese Funktionen nicht mehr übernehmen. In diesem Fall konfigurierst Du die Vergabe der IP-Adresse komplett in Pi-hole. Den DHCP-Server im Router schaltest Du dann ab. Natürlich darfst Du auch hier feste IP-Adressen via DHCP zuweisen und vermeidest den bereits angesprochenen Konflikt.
Den Reiter Web interface / API überspringe ich. Schau ihn Dir selbst an und wenn Du ihn brauchen kannst, wird Dir das bewusst. Die Temperaturanzeige kannst Du dort auch umstellen, wenn das gewünscht ist.
Teleporter ermöglicht ein Backup Deiner Einstellungen. Nach Änderungen der Konfiguration kann es nicht schaden, eine Sicherung durchzuführen. Sollte die microSD-Karte den Geist aufgeben, sind Deine Einstellungen schnell wieder eingespielt.
Pi-hole auf der Kommandozeile
Wer das WebGUI nicht installieren möchte oder einfach lieber auf der Kommandozeile hantiert, der kann Pi-hole auch so nutzen. Außerdem gab es in der Vergangenheit immer mal wieder Probleme mit der Admin-Oberfläche und gewisse Aufgaben haben nur auf der Kommandozeile funktioniert. Behalte es einfach im Kopf und wenn das GUI zickt, dann können wir auch anders.
Seit Pi-hole 6 laufen die Befehle über die neue API und fragen sonst nach dem Passwort. Nimmst Du Deinen Anwender in die Gruppe pihole auf, entfällt das. Melde Dich danach einmal neu an:
sudo usermod -aG pihole $USERZunächst einmal möchte ich darauf hinweisen, dass Du für die Steuerung von Pi-hole auf der Kommandozeile nicht root sein musst. Dein normaler Anwender darf auch. Führst Du den Befehl
pihole
aus, dann erzählt Dir die Software, welche Optionen Du hast. Die Optionen weiter unten sind ziemlich selbsterklärend. Aktivieren (enable), Deaktivieren (disable) und den DNS-Dienst neu laden (reloaddns) muss man nun nicht gesondert erklären. Spinnt Pi-hole, kannst Du es zum Beispiel mit einem Neustart des Subsystems versuchen:
sudo systemctl restart pihole-FTL
Den früheren Befehl pihole restartdns gibt es in Pi-hole 6 nicht mehr.
Einige der Optionen haben Unter-Optionen. Gibst Du den nachfolgenden Befehl ein, bekommst Du eine Erklärung:
pihole allow -h
Früher konntest Du mit pihole -a eine administrative E-Mail-Adresse hinterlegen oder das Passwort ändern. Das hatten wir weiter oben schon mal und nun ergibt es mehr Sinn. Das Passwort änderst Du heute mit
sudo pihole setpassword
Whitelist und Blacklist via Kommandozeile
Eine der wichtigsten Funktionen von Pi-hole ist das Blockieren von Domains. Deswegen lassen sich auch die Whitelist und die Blacklist über die Kommandozeile steuern und konfigurieren. Neue Einträge in die Blacklist (heute deny) fügst Du zum Beispiel so hinzu:
pihole deny domain.com
oder auch als Liste
pihole deny domain1.com domain2.com domain3.com ...
Äquivalent ist das mit der Whitelist (pihole allow). Die Liste aller Domains in der Whitelist oder Blacklist lässt Du Dir so anzeigen:
pihole allow -l pihole deny -l
Chronometer, PADD und Tail bei Pi-hole
Ich möchte auf noch zwei Werkzeuge hinweisen, die ich niedlich und nützlich finde. Das ist zum einen
./padd.sh
Damit bekommst Du auf der Kommandozeile eine kleine Übersicht. Nette Spielerei, mit der Du auch auf der Kommandozeile die Auslastung sehen kannst.
Früher war das der Befehl pihole -c (Chronometer). Seit Pi-hole 6 verweist er nur noch auf seinen Nachfolger PADD. Den holst Du vorher einmalig so:
cd ~
wget -O padd.sh https://install.padd.sh
sudo chmod +x padd.shZum anderen finde ich den nachfolgenden Befehl sehr nützlich, weil er einem auch die Augen öffnet:
sudo pihole -t
Kommandozeilen-Ninjas kennen -t natürlich. Das steht für Tail und Du bekommst immer die letzten X Zeilen aus dem Logfile. In unserem Fall sehen wir live, was Pi-hole gerade so treibt und blockiert. Führe den Befehl aus, halte das Fenster im Blick und fange danach an im Internet zu surfen. Der Rechner muss Pi-hole natürlich als DNS Server verwenden.
Pi-hole aktualisieren
Neue Versionen spielst Du mit einem Befehl ein. Lies vorher die Release Notes, vor allem bei großen Sprüngen wie von Pi-hole 5 auf 6. Mehr dazu steht im Beitrag Pi-hole aktualisieren.
sudo pihole -upEigene DNS-Auflösung inklusive DNSSEC mit Pi-hole
OK, machen wir die Sache noch etwas fortschrittlicher und benutzen eine eigene DNS-Auflösung. Das ist ein optionaler Schritt, der für etwas mehr Datenschutz sorgt! Dafür brauchen wir einen rekursiven Resolver wie Unbound und den müssen wir zunächst installieren. Bei Pi-hole finden wir die entsprechende Anleitung. Die Liste der DNS-Root-Server (Root Hints) bringt das Paket dns-root-data gleich mit, der Paketmanager hält sie aktuell.
2019 habe ich hier noch den PowerDNS Recursor genommen. Dessen Konfiguration nutzt ab Debian 13 (Trixie) ein neues Format (YAML), die alte Anleitung läuft dort nicht mehr. Unbound ist der Weg, den die Pi-hole-Entwickler selbst beschreiben.
Wir installieren Unbound aus den Paketquellen:
sudo apt install unbound
Editiere nun die Datei /etc/unbound/unbound.conf.d/pi-hole.conf und sieh zu, dass die nachfolgenden Werte wie folgt aussehen. Hast Du kein IPv6, setzt Du do-ip6 auf no.
server:
verbosity: 0
interface: 127.0.0.1
port: 5335
do-ip4: yes
do-udp: yes
do-tcp: yes
do-ip6: yes
prefer-ip6: no
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: no
edns-buffer-size: 1232
prefetch: yes
num-threads: 1
so-rcvbuf: 1m
private-address: 192.168.0.0/16
private-address: 169.254.0.0/16
private-address: 172.16.0.0/12
private-address: 10.0.0.0/8
private-address: fd00::/8
private-address: fe80::/10
private-address: 192.0.2.0/24
private-address: 198.51.100.0/24
private-address: 203.0.113.0/24
private-address: 255.255.255.255/32
private-address: 2001:db8::/32Nach der Konfiguration ist ein Neustart des Services notwendig. Danach prüfst Du, ob Unbound antwortet. Die erste Anfrage kann etwas dauern:
sudo service unbound restart dig pi-hole.net @127.0.0.1 -p 5335
Ob DNSSEC greift, siehst Du an zwei weiteren Abfragen. Die erste muss SERVFAIL ohne IP-Adresse liefern, die zweite NOERROR mit dem Flag ad:
dig fail01.dnssec.works @127.0.0.1 -p 5335
dig +ad dnssec.works @127.0.0.1 -p 5335Unter Debian ab Bullseye und damit auch unter Raspberry Pi OS kann ein Hilfsdienst Unbound ohne Port als DNS-Server in die Datei /etc/resolv.conf schreiben. Ob er läuft, zeigt der erste Befehl. Die übrigen schalten ihn ab:
systemctl is-active unbound-resolvconf.service
sudo systemctl disable --now unbound-resolvconf.service
sudo sed -Ei 's/^unbound_conf=/#unbound_conf=/' /etc/resolvconf.conf
sudo rm /etc/unbound/unbound.conf.d/resolvconf_resolvers.conf
sudo service unbound restartNun musst Du in den Pi-hole-Einstellungen unter DNS nur noch Deinen DNS-Server eintragen. Das ist in diesem Fall die Adresse 127.0.0.1#5335.
Er gehört in das Feld Custom DNS servers. Alle anderen Upstream-Server wählst Du ab.
Das war es auch schon. Stellst Du Pi-Hole nun als DNS-Server ein, wird Dein eigener Resolver benutzt. Wie schon erwähnt, ist dieser Schritt optional.
Ob das mit DNSSEC klappt, kannst Du übrigens unter wander.science prüfen.
Werde ich Pi-hole weiterhin benutzen?
Ich bin gerade ein bisschen hin und her gerissen, muss ich ehrlich zugeben. Ich habe einige Websites, die ich gerne weiter durch Werbeeinblendungen unterstützen möchte. Auf der anderen Seite öffnet es einem echt die Augen, wenn man im Internet surft und sich live die Blockaden anzeigen lässt. Werbung an sich wäre OK, aber das Tracking hat inzwischen so überhand genommen, dass man sich einfach wehren muss.
Ich habe an sich nichts gegen Werbung und dass sich Websites so finanzieren. Ich habe aber etwas gegen die Art, wie aggressiv Werbung und Datenschnüffelei betrieben wird.
Es geht ja auch Hand in Hand. Wehren sich genug Leute, müssen die Werbetreibenden irgendwann reagieren, wenn es nicht schon zu spät ist. Die momentane Reaktion der Werbetreibenden und Daten-Spione ist ja nicht, etwas zurück zu rudern. Ganz im Gegenteil. Nutzer von Adblockern werden als Parasiten dargestellt und andere müssen es ausbaden, indem man ihnen noch mehr und noch aufdringlichere Werbung unter die Nase hält.
Wie anfangs erwähnt hoffe ich auf Projekte wie Brave und dass solche maßvoll betrieben werden. Sonst kommen wir vom Regen in die Traufe.
Bin ich Dir böse, wenn Du Werbung auf meiner Website blockierst? Nein, auf keinen Fall, ich verstehe es sogar sehr gut.
Wie anfangs erwähnt, rate ich Dir sogar, Dir ein VPN mit Adblocker zuzulegen. Was ich Dir an dieser Stelle empfehle, hängt von Deinen Ansprüchen ab. Einen grafischen Client für Linux haben Surfshark und NordVPN inzwischen beide. Mit Surfshark* darfst Du sogar so viele Geräte gleichzeitig schützen, wie Du möchtest!
Ein tolles Universal-VPN, dessen Kommandozeilen-Client auch auf dem Raspberry Pi funktioniert, ist NordVPN*. Es sind bis zu 10 Geräte gleichzeitig erlaubt. Beide Anbieter sind ähnlich günstig und bieten Geld-Zurück-Garantien.
Wie der grafische Client von Surfshark aussieht, zeigt der Beitrag zu Surfshark für Linux.
Aktualisiert am 14.10.2026 von Henry. Fakten geprüft.

















































Ich benutze Pi-Hole seit einiger Zeit in Verbindung mit PiVPN. Kommt bei mir aktuell nur auf den Smartphones und Tablets zum Einsatz. Auf den Desktoprechnern und Notebooks ist uBlock Origin installiert und bei den Webseiten/Blogs welche ich unterstützen möchte habe ich den Adblocker aus.
Statt Raspbian Stretch Lite nutze ich DietPi.
Hallo,
Pi-Hole nutze ich nicht, aber bzgl. deiner Idee mit dem Kryptominer auf der Seite, ich würde dich damit gerne unterstützen und finde es besser als Werbung, da diese die Performance runter zieht.
Also wenn du es einsetzt und Beiträge teilst, dann schaue ich mal vorbei und spende etwas Rechenleistung 😉 aber bei Möglichkeit ähnlich wie Coin-hive, da ich lieber die Einstellbarkeit mag wieviel Leistung der Seite gegeben wird und nicht die Seite ohne Entscheidungsfreiheit 100% der CPU abzieht.
Wer mehr als die Default-Seiten blocken möchte, findet hier reichlich Material: https://wally3k.github.io/
Lässt sich leicht über die Web-Oberfläche hinzufügen (Settings > Block Lists).
Bei mir funktioniert das Whitelisting über die Web-Oberfläche öfter nicht (zeigt es zwar an, blockiert aber trotzdem noch). Mittels Kommandozeile gibt es keine Probleme.
Die paar Euro im Monat fürs Betreiben einer kleinen Webseite muss man sich glaube ich nicht vom Mund absparen und müssen nicht zwangsläufig auf Kosten der Besucher reingeholt werden. Ich sehe das eher als Hobby an. Wesentlich mehr ins Gewicht fällt natürlich die Zeit, die man fürs Erstellen von Artikeln aufbringt, aber das mit seinem Stundenlohn gegenzurechnen wäre falsch. Im Endeffekt kann man vielleicht 2-3 Folgen im Monat einer Serie auf Netflix weniger ansehen.
Ich habe kein Netflix ... 🙂
Ich sehe die Sache etwas anders, weil die Motivation sinkt, Inhalte zu erstellen, die sehr aufwendig sind. Deswegen rutschen die unabhängigen Websites immer weiter unten durch und es heben sich mehr und mehr Artikel heraus, die in irgendeiner Form beeinflusst sind.
Hi Jürgen
Wieso verwendest du einen 8.99€ Server für einen Blog, statt zB eine statische Seite die du gratis auf Github/Gitlab/etc hosten kannst?
Für die Kommentare lassen sich da Lösungen wie Disqus verwenden, jedenfalls bei Jekyl.
Eine Möglichkeit, via Hugo und IPFS: https://github.com/ipfs/blog
Verstehe die Frage nicht ganz. Ich verwende den Server auch für meine Nextcloud, als VPN Server und so weiter. Außerdem scheint mir die Github-Lösung für ein Blog etwas sehr umständlich. Ich habe eh genug um die Ohren und LAMP+WordPress ist derzeit der Weg des geringsten Widerstandes.
Ernstgemeinte Frage, da ich nicht wirklich tief im Thema bin, ist eher so ein "Black-Hole" für mich... 😉
Was ist an dieser Pi-Hole Geschichte besser als einfach in der Fritzbox ne Blacklist einzutragen?
https://www.kowabit.de/blockliste-fuer-fritzbox-test/
Pi-hole blockiert von sich aus 122.000+ Domains und mit den erweiterten Listen über 500.000 (bei mir derzeit 586.000) ... die FritzBox-Liste sind 500 und nicht jeder hat eine FritzBox ...
Welche 500.000 Domains blockierst du denn? Kannst du deine Liste einmal veröffentlichen?
Die Listen sind öffentlich und kommen mit Pihole ... Ich kann sie Dir schon extrahieren, aber über Pihole werden die Listen auch aktualisiert und auf dem neuesten Stand gehalten
Guten Tag,
stimmt das, dass man solche DNS Server / pi hole immer Lokal laufen lassen sollte?
Hatte mir eine VM gebastelt aber alle raten mir davon ab....
Hatte auch über Firewall und DYDNS Ip Sperr kram nachgedacht, aber das lässt sich wohl auch in Minuten umgehen und schon kann man über meinen "Server" surfen....
Irgendwelche Ideen dazu?
Hi,
ich verstehe die Frage nicht ganz. Läuft Pi-Hole im internen Netzwerk (Heimnetz) und der entsprechende Port ist von außen gesperrt, funktioniert nur die Richtung Pi-Hole-> Internet. Also alle im internen Netzwerk können Pi-Hole nutzen, aber keiner aus dem Internet kann darauf zugreifen.
Läuft Pi-Hole in einem Netzwerk, dann können den Service alle nutzen, klar. Es surfen aber noch lange nicht alle Leute über diesen Server, da der reine Netzwerk-Traffic nicht darüber läuft, sondern lediglich die DNS-Auflösung!
Hast du schon Pi-Hole 4 am laufen bzw. hat sich hier etwas in der Installation und Konfiguration im Vergleich zu v3 verändert?
Hast du Pi-Hole auch schon mal mit unbound kombiniert?
1. nein
2. weiß ich nicht, aber wenn ich mir die Ankündigung dazu ansehe, ist alles ziemlich ähnlich. Gibt ein paar Neuerungen, ist aber alles beschriebn - klick
3. ebenfalls nein