GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So richten Sie Pihole in einem Docker-Container ein

Vielleicht werden Sie beim Lesen eines Artikels auf einer Website mit Popup-Werbung belästigt. Bei all diesen Anzeigen, wie kann man sie blockieren? Installieren Sie Pi-hole in Docker und verwenden Sie Pi-hole als netzwerkweiten Werbeblocker und verbessern Sie Ihre Netzwerkleistung.

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 mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • Docker auf Windows 10 installiert (aber jedes unterstützte Betriebssystem funktioniert).
  • Ein Windows 10-PC – Dieses Tutorial verwendet Windows 10 OS Build 19042.1165.

Zwei persistente Docker-Volumes erstellen

Wenn Sie Pi-hole im Docker-Container einrichten, müssen Sie zuerst 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 aus, damit Docker zwei Volumes erstellt (volume create ) namens pihole_app und dns_config . Sie können die Namen auch nach Ihren Wünschen ändern.

docker volume create pihole_app
docker volume create dns_config

Überprüfen Sie als Nächstes, ob die Docker-Volumes erfolgreich erstellt wurden, indem Sie den folgenden Befehl ausführen, der alle auf Ihrem Computer verfügbaren Docker-Volumes auflistet.

docker volume ls

Unten sehen Sie zwei neu erstellte Volumes namens pihole_app und dns_config .

Pi-hole im Docker-Container mit Umgebungsvariablen ausführen

Nachdem Sie nun 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 erforderlich, um den einzelnen Docker-Befehl ordnungsgemäß auszuführen.

ipconfig /all

Führen Sie als Nächstes den folgenden Befehl aus, um pihole/pihole abzurufen Basisimage vom Docker-Hub. Ersetzen Sie die Werte entsprechend, indem Sie die folgende Tabelle als Referenz verwenden. In der folgenden Tabelle werden die einzelnen Flags für den Zweck des Befehls erläutert.

docker run --name=pihole -e TZ=Asia/Manila -e WEBPASSWORD=password -e SERVERIP=YourIPAddressHere -v pihole_app:/etc/pihole -v dns_config:/etc/dnsmasq.d -p 81:80 -p 53:53/tcp -p 53:53/udp --restart=unless-stopped pihole/pihole

Pi-Hole-Docker-Befehlsflags

Befehls-Flags Definition
– name=pihole Benennt einen Docker-Container als Pihole. Es wird ein Fehler ausgegeben, wenn bereits ein Container mit demselben Namen auf Ihrem Computer existiert
-e TZ=Asien/Manila Umgebungsvariable für die Zeitzone. Asia/Manila wurde für dieses Tutorial verwendet, aber Sie können alles eingeben, was das gleiche Format hat, das in einem GitHub-Gist aufgelistet ist.
-e WEBPASSWORD=Passwort Legt ein Passwort für die Pi-hole-Schnittstelle fest.
-e SERVERIP=IhreIP-AdresseHier Legen Sie Ihre IP-Adresse für den Docker-Container fest. Sie werden dies später erneut verwenden, um Pi-Hole zum Laufen zu bringen.
-v pihole_app:/etc/pihole Mountt das Volume pihole_app und verwendet das Unterverzeichnis /etc/pihole zum Speichern der Pi-hole-Dateien
-v dns_config:/etc/dnsmasq.d Hängt das Volume dns_config ein und verwendet das Unterverzeichnis /etc/dnsmasq. d zum Speichern von DNS-Konfigurationen nach Bedarf.
p 81:80 -p 53:53/tcp -p 53:53/udp Ordnet die Ports der Hostmaschine den Ports des Docker-Containers zu (Port 81 in der Hostmaschine wird Port 80 des Docker-Containers zugeordnet)
—restart=unless-stopped Legt eine Neustartrichtlinie fest, sodass der Docker-Container immer neu gestartet wird, es sei denn, er wird manuell vom Benutzer gestoppt.
pihole/pihole Teilt dem Docker-Run-Befehl mit, das offizielle Pihole/Pihole-Basis-Image vom Docker-Hub zu verwenden.

Unten sehen Sie, wie der Befehl pihole/pihole abruft Basisimage von Docker Hub. Einmal das pihole/pihole Bild auf Ihren Computer heruntergeladen wird, wird der Befehl automatisch fortgesetzt und folgt den Parametern, die Sie im Befehl festgelegt haben.

Nach dem Ziehen des pihole/pihole Basis-Image sehen Sie eine Ausgabe wie die untenstehende, die darauf hinweist, dass Sie das Pi-hole-Dashboard bereits aus dem Container ausführen können.

Zugriff auf die Pi-hole Dashboard-Weboberfläche

Sobald der von Ihnen erstellte Docker-Container ausgeführt wird, können Sie nun auf das Pi-hole-Dashboard zugreifen. Das Pi-hole-Dashboard ist eine grafische Oberfläche, mit der Sie konfigurieren können, welche Anzeigen blockiert werden sollen, entweder über Ihre eigene Blacklist oder über von der Community verwaltete Blacklists.

Navigieren Sie zu http://localhost:81 in Ihrem Browser, da Sie zuvor Port 81 zugeordnet haben des Hostrechners an Port 80 des Docker-Containers. Dabei leitet Ihr Webbrowser die Seite an das Pi-hole-Dashboard weiter.

Wenn Sie beim Ausführen des vorherigen docker einen anderen Port festgelegt haben ändern Sie den Port, um auf das Pi-hole-Dashboard zuzugreifen. Beispiel:http://localhost:n, wobei „n“ die Portnummer darstellt.

Melden Sie sich jetzt beim Pi-hole-Dashboard mit dem Passwort an, das Sie festgelegt haben, indem Sie docker ausführen Befehl im Abschnitt „Pi-hole-Docker-Container mit Umgebungsvariablen ausführen“. Für dieses Tutorial lautet das Passwort „password“ (ohne Anführungszeichen).

Wie Sie unten sehen, blockiert der Pi-hole-Container Anzeigen nicht aktiv und befindet sich im Standby-Modus und wartet auf so genannte „Abfragen“ oder Anzeigenanfragen zur Auswertung.

Den DNS-Server des Hosts auf die Pi-hole-IP-Adresse verweisen

Wie fangen Sie bei laufendem Pi-hole-Server an, Anzeigen auf Ihrem lokalen System zu blockieren? Sie müssen Ihr lokales System anweisen, alle Anfragen an die IP-Adresse von Pi-hole weiterzuleiten und alle übereinstimmenden Anzeigen zu blockieren. Lesen Sie weiter, um zu erfahren, wie!

1. Klicken Sie mit der rechten Maustaste auf das Symbol Ihrer Netzwerkeinstellungen in der Windows-Taskleiste und wählen Sie Netzwerk- und Interneteinstellungen öffnen , um die Liste aller Netzwerkadapter in Ihrem Computer anzuzeigen.

2. Klicken Sie als Nächstes mit der rechten Maustaste auf Ihren Netzwerkadapter und wählen Sie Eigenschaften . Das Einstellungsfenster Ihres Netzwerkadapters wird angezeigt.

3. Wählen Sie Internet Protocol Version 4 (TCP/IPv4) aus aus der Liste unter Networking und klicken Sie dann auf Eigenschaften Taste.

4. Konfigurieren Sie die IPv4-Eigenschaften wie folgt:

  • Wählen Sie die Option Folgende IP-Adresse verwenden um eine statische IP-Adresse festzulegen. Die statische IP-Zuweisung zum Host-Rechner ermöglicht es anderen Geräten, sich zu verbinden und den Adblocker zu verwenden. Das Standard-Gateway für den Router unterscheidet sich je nach den Einstellungen Ihres ISP-Anbieters in Ihrem Land.
  • Wählen Sie die Option Folgende DNS-Serveradressen verwenden Option zum Konfigurieren Ihres DNS-Servers und fügen Sie einen DNS-Server zum Bevorzugten DNS-Server hinzu Feld. Geben Sie die IP-Adresse des Docker-Servers ein, die Sie im vorherigen docker festgelegt haben Befehl im Abschnitt „Pi-hole-Docker-Container mit Umgebungsvariablen ausführen“.
  • Fügen Sie einen alternativen Server wie den Google-Server 8.8.8.8 im Alternativen DNS-Server hinzu Feld 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 zuweisen, den Sie bevorzugen.

DNS eines einzelnen Geräts konfigurieren

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 verweisen. In diesem Tutorial ist ein Smartphone mit demselben Netzwerk verbunden.

1. Tippen Sie in den WLAN-Einstellungen des Smartphones auf Manuell und geben Sie die IP-Adresse des Host-Rechners ein. Sie können auch alternative IP-Adressen hinzufügen, falls Pi-hole fehlschlägt.

Die Benutzeroberfläche für drahtlose Netzwerkeinstellungen auf Smartphones unterscheidet sich voneinander.

2. Besuchen Sie jetzt einige werbeintensive Websites im Webbrowser Ihres Smartphones.

Für dieses Beispiel wurden die Websites von Daily Mail und der New York Times wiederholt für 5-10 Minuten besucht. Der Live-Browser-Admin auf dem Pi-hole-Dashboard zeigt die Anzahl der blockierten Anzeigen vom Gerät, wie unten gezeigt.

Die Balkendiagramme sind zum Zeitpunkt der Erstellung dieses Artikels eine neue Ergänzung der neuesten Version von Pi-hole. Einige ältere Versionen haben stattdessen Liniendiagramme.

Heimnetzwerkweite Blockierung über Routereinstellungen aktivieren

Anstatt einen DNS-Server auf einem einzelnen Gerät zu konfigurieren, versuchen Sie, DNS-Server für alle Geräte in Ihren Routereinstellungen zu konfigurieren. Abhängig von Ihrem Router kann die Verwendung der IP-Adresse vorgesehen sein oder nicht.

Für diese Demo erlaubte der Router keinen Zugriff auf sich ändernde DNS-Server und DHCP. Heimnetzwerke wurden in diesem Tutorial aufgrund von Routerbeschränkungen nicht im Detail untersucht.

In einer Beispiel-Admin-Ansicht können Sie die DNS-Server-IP möglicherweise auf die gleiche Weise codieren, wie dies bei einem einzelnen Gerät der Fall war. 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 wie folgt aus.

Sie können auch den DHCP-Server im Router deaktivieren und dann stattdessen den DHCP-Server in Pi-hole aktivieren. Eine beispielhafte Diskussion in der Pi-hole-Community zeigt dies genauer.

Blockieren von Websites über das Pi-hole-Dashboard

Die Standardinstallation von Pi-hole blockiert standardmäßig etwa 92.725 Websites, aber Sie können auch weitere Websites über schwarze Listen des Pi-hole-Herstellers und andere Listen hinzufügen, die von Pi-hole-Fans geteilt werden.

1. Speichern Sie die zu blockierenden Websites in einer Textdatei mit Ihrem bevorzugten Namen. In diesem Beispiel heißt die Datei blocklist.txt .

2. Führen Sie den docker aus Befehl unten, um die blocklist.txt zu kopieren Datei (cp blocklist.txt ) auf das Volume des Docker-Containers in einer Datei namens blacklist.txt . Bewahren Sie die blacklist.txt auf Datei auf dem Docker-Volume, damit Pi-hole sie automatisch erkennt.

docker cp blocklist.txt d70:/etc/pihole/blacklist.txt

3. Navigieren Sie schließlich erneut zum Pi-hole-Admin-Dashboard. Klicken Sie auf Extras Menü im linken Bereich und dann Schwerkraft aktualisieren Verknüpfung. Klicken Sie abschließend auf Aktualisieren um eine aktualisierte Liste von URLs abzurufen, die Pi-hole blockieren soll.

Ein erfolgreiches Update sieht wie folgt aus.

Aktualisieren der Sperrliste von Websites über die Konsole

Vielleicht ziehen Sie es vor, Konsolenbefehle auszuführen, anstatt durch das Pi-hole-Dashboard zu navigieren. Wenn dies der Fall ist, können Sie einen Docker-Befehl in PowerShell ausführen, um Websites zu blockieren. Führen Sie docker exec aus Befehl unten, um eine interaktive Terminalsitzung mit pihole_app zu erstellen Docker-Container, der das Ausführen von Befehlen ermöglicht.

docker exec -it pihole_app /bin/bash

Sobald die Terminalsitzung geöffnet ist, führen Sie den folgenden Befehl aus, um die URL-Blacklist von Pi-hole zu aktualisieren.

pihole -g

Führen Sie pihole -g erneut aus von Zeit zu Zeit, damit Ihr Werbeblocker auf dem neuesten Stand bleibt.

Blockieren von Websites über von der Community gepflegte schwarze Listen von URLs

Einige URLs werden regelmäßig von ihren Mitwirkenden aktualisiert, andere nicht, sodass das Hochladen einer schwarzen Liste von einer alten Liste möglicherweise nicht die neuesten Änderungen widerspiegelt.

Nutzen Sie die Adlist-Sperrlisten-Gruppenverwaltungsfunktion von Pi-hole. Klicken Sie im Pi-hole-Dashboard auf GruppenverwaltungAnzeigenlisten Menü im linken Bereich und klicken Sie dann auf Hinzufügen , um die Liste der URLs auszuwählen, die Sie in Pi-hole hinzufügen möchten.

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie ein Pi-Hole-Docker-Image herunterladen, eine Pi-Hole-Webschnittstelle mit aktiver Überwachung testen und ein externes Gerät testen, um eine Verbindung zu Pi-Hole herzustellen. Sie haben auch gelernt, wie Sie Anzeigen und Websites blockieren, und Sie haben das Pi-hole-Dashboard in Aktion gesehen, während es sie blockiert.

Warum sollten Sie mit diesem Wissen nicht irgendeinen Host-Rechner verwenden, um Werbung für andere verbundene Geräte im selben Netzwerk zu blockieren?


Docker
  1. So installieren Sie WordPress mit Docker

  2. So führen Sie einen Befehl in einem laufenden Docker-Container aus

  3. So weisen Sie einem Docker-Container eine statische IP zu

  4. So stellen Sie PostgreSQL als Docker-Container bereit

  5. So beenden Sie einen Docker-Container

Was ist Docker? Wie funktioniert es?

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So fügen Sie einem vorhandenen Docker-Container ein Volume hinzu

So richten Sie einen Apache Docker-Container ein

So führen Sie Docker-Container aus