Vielleicht werden Sie von Pop-up-Anzeigen belästigt, wenn Sie einen Artikel auf einer Website lesen. Wie blockieren Sie all diese Anzeigen? Installieren Sie Pi-hole in Docker und verwenden Sie Pi-hole als netzwerkweiten Anzeigenblocker, um die Leistung Ihres Netzwerks zu verbessern.
In diesem Tutorial erfahren Sie, wie Sie Pi-hole in einem Docker-Container einrichten und ausführen, um Anzeigen und Websites zu blockieren. Klingt spannend? Lesen Sie weiter, um mehr zu erfahren!
Voraussetzungen
Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie folgen möchten, stellen Sie sicher, dass Sie Folgendes haben:
- Docker installiert auf Windows 10 (aber jedes unterstützte Betriebssystem funktioniert).
- A Windows 10 PC – This tutorial uses Windows 10 OS Build 19042.1165.
Erstellen von zwei persistenten Docker-Volumes
Wenn Sie Pi-hole in einem Docker-Container einrichten, müssen Sie zunächst ein Docker-Volume erstellen, um die Pi-hole-Anwendung und die DNS-Konfiguration zu speichern.
Öffnen Sie PowerShell als Administrator und führen Sie dann die folgenden Befehle für Docker aus, um zwei Volumes (volume create
) mit den Namen pihole_app
und dns_config
zu erstellen. Sie können die Namen nach Ihren Wünschen ändern.
Überprüfen Sie anschließend, ob die Docker-Volumes erfolgreich erstellt wurden, indem Sie den folgenden Befehl ausführen, der alle verfügbaren Docker-Volumes auf Ihrem Gerät auflistet.
Unten sehen Sie zwei neu erstellte Volumes mit den Namen pihole_app
und dns_config
.

Führen Sie Pi-hole in einem Docker-Container mit Umgebungsvariablen aus
Jetzt, da Sie zwei persistente Volumes zur Verfügung haben, können Sie einen Docker-Container mit dem Basis-Docker-Image von Pi-hole ausführen. Aber zuerst müssen Sie Ihre lokale IP-Adresse notieren.
Führen Sie den folgenden Befehl aus, um Ihre lokale IP-Adresse zu erhalten. Ihre lokale IP-Adresse ist notwendig, um den einzelnen Docker-Befehl ordnungsgemäß auszuführen.
Führen Sie anschließend den Befehl unten aus, um das Basis-Image pihole/pihole
von Docker Hub herunterzuladen. Ersetzen Sie die Werte entsprechend anhand der unten stehenden Tabelle als Referenz. Die Tabelle erklärt jeden Flag des Befehlszwecks.
Pi-hole Docker-Befehlsflags
Command Flags | Definition |
—name=pihole | Names a Docker container as pihole. There will be an error if a container with the same name already exists on your machine |
-e TZ=Asia/Manila | Environment variable for time zone. Asia/Manila was used for this tutorial, but you can input anything that has the same format listed in on a GitHub gist. |
-e WEBPASSWORD=password | Sets a password for the Pi-hole interface. |
-e SERVERIP=YourIPAddressHere | Set your IP address for the Docker container. You will use this again later for making Pi-hole work. |
-v pihole_app:/etc/pihole | Mounts the volume pihole_app and use subdirectory /etc/pihole for storing the Pi-hole files |
-v dns_config:/etc/dnsmasq.d | Mounts the volume dns_config and use subdirectory /etc/dnsmasq.d for storing DNS configurations as required. |
p 81:80 -p 53:53/tcp -p 53:53/udp | Maps the ports of host machine to the ports of the Docker container (port 81 in host machine maps to port 80 of Docker container) |
—restart=unless-stopped | Sets a restart policy so the Docker container always restarts unless it is manually stopped by the user. |
pihole/pihole | Tells the docker run command to use the official pihole/pihole base image from Docker hub. |
Nachfolgend sehen Sie den Befehl, der das pihole/pihole
-Basissystem von Docker Hub lädt. Sobald das pihole/pihole
-Image auf Ihrem Gerät heruntergeladen ist, wird der Befehl automatisch fortgesetzt und folgt den von Ihnen festgelegten Parametern.

Nach dem Herunterladen des pihole/pihole
-Basissystems wird eine Ausgabe wie die folgende angezeigt, die darauf hinweist, dass Sie bereits das Pi-hole-Dashboard über den Container ausführen können.

Zugriff auf die Pi-hole-Dashboard-Web-Oberfläche
Sobald der von Ihnen erstellte Docker-Container läuft, können Sie auf das Pi-hole-Dashboard zugreifen. Das Pi-hole-Dashboard ist eine grafische Benutzeroberfläche, mit der Sie konfigurieren können, welche Anzeigen entweder über Ihre eigene Blacklist oder über von der Community gepflegte Blacklists blockiert werden sollen.
Gehen Sie in Ihrem Browser zu http://localhost:81, da Sie zuvor den Port 81
des Host-Geräts auf den Port 80
des Docker-Containers gemappt haben. Dadurch leitet Ihr Webbrowser die Seite zum Pi-hole-Dashboard weiter.
Wenn Sie einen anderen Port festgelegt haben, als Sie den vorherigen
docker
-Befehl ausgeführt haben, ändern Sie den Port, um auf das Pi-hole-Dashboard zuzugreifen. Zum Beispiel: http://localhost:n, wobei ’n‘ die Portnummer darstellt.
Melden Sie sich nun mit dem Passwort im Pi-hole-Dashboard an, das Sie durch Ausführen des docker
-Befehls im Abschnitt „Ausführen des Pi-hole Docker Containers mit Umgebungsvariablen“ festgelegt haben. Für dieses Tutorial ist das Passwort „password“ (ohne Anführungszeichen).

Wie Sie unten sehen können, blockiert der Pi-hole-Container Anzeigen nicht aktiv und befindet sich im Standby-Modus, während er auf das wartet, was er als „Abfragen“ oder Anzeigenanfragen bezeichnet, um sie zu bewerten.

Um den DNS-Server des Hosts auf die IP-Adresse von Pi-hole zu zeigen
Mit dem Pi-hole-Server in Betrieb, wie blockieren Sie Anzeigen auf Ihrem lokalen System? Sie müssen Ihrem lokalen System mitteilen, alle Anfragen an die IP-Adresse von Pi-hole zu leiten und alle übereinstimmenden Anzeigen zu blockieren. Lesen Sie weiter, um zu erfahren, wie!
1. Klicken Sie mit der rechten Maustaste auf das Symbol für Ihre Netzwerkeinstellungen im Windows-Systembereich und wählen Sie Netzwerk- & Internet-Einstellungen öffnen, um die Liste aller Netzwerkadapter in Ihrem Gerät zu sehen.

2. Klicken Sie anschließend mit der rechten Maustaste auf Ihren Netzwerkadapter und wählen Sie Eigenschaften. Das Fenster mit den Einstellungen Ihres Netzwerkadapters wird angezeigt.

3. Wählen Sie unter dem Netzwerk-Tab Internetprotokoll Version 4 (TCP/IPv4) aus der Liste aus und klicken Sie dann auf die Schaltfläche Eigenschaften.

4. Konfigurieren Sie die IPv4-Eigenschaften wie folgt:
- Wählen Sie die Option Die folgende IP-Adresse verwenden, um eine statische IP-Adresse festzulegen. Die statische IP-Zuweisung an den Host ermöglicht es anderen Geräten, sich zu verbinden und den Adblocker zu verwenden. Das Standardgateway für den Router variiert je nach den Einstellungen Ihres Internetdienstanbieters in Ihrem Land.
- Wählen Sie die Option Verwenden Sie die folgenden DNS-Serveradressen, um Ihren DNS-Server zu konfigurieren, und fügen Sie einen DNS-Server im Feld Bevorzugter DNS-Server hinzu. Geben Sie die IP-Adresse des Docker-Servers ein, den Sie im vorherigen
docker
-Befehl unter dem Abschnitt „Ausführen des Pi-hole-Docker-Containers mit Umgebungsvariablen“ festgelegt haben. - Fügen Sie einen alternativen Server wie den Google-Server 8.8.8.8 im Feld Alternativer DNS-Server hinzu und klicken Sie auf OK. Der alternative DNS-Server dient als DNS-Server, falls der Pi-hole-Docker-Container aus irgendeinem Grund ausfällt. Sie können dem alternativen DNS-Server einen anderen Wert geben, den Sie bevorzugen.

Konfigurieren der DNS eines einzelnen Geräts
Angenommen, Sie haben ein Smartphone oder ein anderes Gerät, das mit demselben Netzwerk verbunden ist, können Sie den DNS-Server dieses Geräts auf die IP-Adresse des Hosts einstellen. In diesem Tutorial ist ein Smartphone mit demselben Netzwerk verbunden.
1. Tippen Sie in den drahtlosen Netzwerkeinstellungen des Smartphones auf Manuell und geben Sie die IP-Adresse des Hostcomputers ein. Sie können auch alternative IP-Adressen hinzufügen, falls Pi-hole ausfällt.
Die Benutzeroberfläche der drahtlosen Netzwerkeinstellungen auf Smartphones kann variieren.

2. Besuchen Sie nun einige Websites, die viele Werbeanzeigen enthalten, in Ihrem Smartphone-Webbrowser.
Für dieses Beispiel wurden die Websites von Daily Mail und der New York Times wiederholt für 5-10 Minuten besucht. Das Live-Browser-Admin auf dem Pi-hole-Dashboard zeigt die Anzahl der blockierten Anzeigen vom Gerät, wie unten gezeigt.
Die Balkendiagramme sind eine kürzliche Ergänzung zur neuesten Version von Pi-hole zum Zeitpunkt dieses Schreibens. Einige ältere Versionen haben stattdessen Liniendiagramme.

Aktivieren der netzwerkweiten Blockierung zu Hause über Router-Einstellungen
Statt einen DNS-Server auf einem einzelnen Gerät zu konfigurieren, versuchen Sie, DNS-Server für alle Geräte in den Router-Einstellungen zu konfigurieren. Je nach Ihrem Router gibt es möglicherweise eine Möglichkeit zur Verwendung der IP-Adresse oder auch nicht.
Für diese Demo hat der Router keinen Zugriff auf die Änderung von DNS-Servern und DHCP ermöglicht. Daher wurde das Heimnetzwerk in diesem Tutorial aufgrund von Routerbeschränkungen nicht vollständig erkundet.
In einer Beispielansicht des Admins können Sie die DNS-Server-IP möglicherweise genauso codieren, wie es bei einem einzelnen Gerät gemacht wurde. Diese Demo verwendet einen Prolink PRS1841U-v2-Router, der an den ISP gebunden ist.
Die DNS-Konfigurationsoberfläche unterscheidet sich von Router zu Router, aber die Einstellungen sehen so aus wie unten dargestellt.

Sie können auch den DHCP-Server im Router deaktivieren und stattdessen den DHCP-Server in Pi-hole aktivieren. Eine Beispieldiskussion in der Pi-hole-Community zeigt dies genauer.
Websites über das Pi-hole-Dashboard blockieren
Die Standardinstallation von Pi-hole blockiert standardmäßig rund 92.725 Websites, aber Sie können auch weitere Websites über Blacklists des Pi-hole-Herstellers und andere Listen, die von Pi-hole-Fans geteilt werden, hinzufügen.
1. Speichern Sie die zu blockierenden Websites in einer Textdatei mit Ihrem bevorzugten Namen. Für dieses Beispiel wird die Datei als blocklist.txt bezeichnet.
2. Führen Sie den docker
-Befehl unten aus, um die Datei blocklist.txt (cp blocklist.txt
) in das Docker-Container-Volume in eine Datei namens blacklist.txt zu kopieren. Behalten Sie die Datei blacklist.txt im Docker-Volume, damit Pi-hole sie automatisch erkennt.
3. Gehen Sie schließlich erneut zum Pi-hole-Admin-Dashboard. Klicken Sie im linken Bereich auf das Tools-Menü und dann auf den Update Gravity-Link. Klicken Sie abschließend auf Aktualisieren, um eine aktualisierte Liste von URLs zum Blockieren durch Pi-hole abzurufen.

A successful update will look like the one below.

Aktualisieren der Blockliste von Websites über die Konsole
Vielleicht ziehen Sie es vor, Konsolenbefehle auszuführen, anstatt das Pi-hole-Dashboard zu navigieren. Wenn ja, können Sie einen Docker-Befehl in PowerShell ausführen, um Websites zu blockieren. Führen Sie den untenstehenden docker exec
-Befehl aus, um eine interaktive Terminalsession zum Docker-Container pihole_app
zu erstellen, die das Ausführen von Befehlen ermöglicht.
Sobald die Terminalsession geöffnet ist, führen Sie den untenstehenden Befehl aus, um die Blacklist von URLs von Pi-hole zu aktualisieren.
Führen Sie von Zeit zu Zeit erneut
pihole -g
aus, damit Ihr Werbeblocker aktualisiert bleibt.
Blockieren von Websites über von der Community gepflegte Blacklists von URLs
Einige URLs werden regelmäßig von ihren Beitragenden aktualisiert, andere nicht, daher spiegelt das Hochladen einer Blacklist aus einer alten Liste möglicherweise nicht die neuesten Änderungen wider.
Nutzen Sie das Feature zur Gruppenverwaltung von Adlist-Blocklisten von Pi-hole. Klicken Sie im Pi-hole-Dashboard auf das Gruppenverwaltung → Adlists-Menü auf der linken Seite und klicken Sie dann auf Hinzufügen, um die Liste der URLs auszuwählen, die Sie in Pi-hole hinzufügen möchten.

Abschluss
In diesem Tutorial haben Sie gelernt, wie Sie ein Pi-Hole Docker-Image herunterladen, eine aktive Pi-Hole-Webbenutzeroberfläche testen und ein externes Gerät testen, um sich mit Pi-Hole zu verbinden. Sie haben auch gelernt, wie Sie Anzeigen und Websites blockieren können, und haben das Pi-Hole-Dashboard in Aktion gesehen, wie es diese blockiert hat.
Mit diesem Wissen, warum nicht jede Host-Maschine verwenden, um Anzeigen für andere verbundene Geräte im selben Netzwerk zu blockieren?