Pi-hole ist ein beeindruckendes Tool zur Filterung von Werbung im Netzwerk, das auf diversen Systemen zum Einsatz kommen kann. Eines dieser Systeme ist Proxmox VE, eine robuste Virtualisierungsplattform mit Open-Source-Status, die sich ideal für den Betrieb von Pi-hole eignet. Die Implementierung von Pi-hole in einem Proxmox VE Container ermöglicht es, dass der Werbefilter kontinuierlich aktiv ist, ohne dass dafür ein eigener physischer Server erforderlich ist. Dies bietet eine effiziente und ressourcenschonende Lösung für die Werbefilterung, da die Virtualisierungsumgebung von Proxmox VE die notwendige Infrastruktur bereitstellt und gleichzeitig Flexibilität in der Verwaltung und Skalierung ermöglicht.
Die Zutaten für Pi-Hole auf dem Proxmox Server
Du brauchst einen Proxmox Server, der in dein Heimnetzwerk eingebunden ist. Wie du Proxmox auf einem alten PC installierst, erfährst du in meinem Artikel „Installation Proxmox VE auf Dell Optiplex oder anderem PC“.
Ich benutze häufig die Helper-Scripts von tteck, eine echte Erleichterung für Installationen auf Proxmox. So auch für die Installation von Pi-Hole.
Installation von Pi-Hole mit Helper-Scripts
Zuerst rufst du die Webseite deines Proxmox Servers auf und loggst dich ein. Danach wählst du deinen Proxmox Node aus und öffnest die Kommandozeile mit dem Klicken auf den Button „>_ Shell“.
Im Terminalfenster gibst du folgende Zeile ein und bestätigst mit Enter:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pihole.sh)"
Nach der Frage, ob ein Container erstellt werden soll, die du natürlich mit ok bestätigst, wird der Container erstellt. Als ich das erste Mal Pi-Hole installiert habe, habe ich die Vorgaben bzw. „Default-Settings“ übernommen. Das Einzige, was später geregelt werden muss, ist die IP-Adresse. Diese wird zuerst vom DHCP Server zugewiesen, bei mir also von meiner Fritz!Box. Das ist zuerst Ok, denn nun hat Pi-Hole eine freie IP-Adresse, ich muss nicht extra eine freie suchen.
Nach der Installation von Pi-Hole kommt noch die Frage „Would you like to add unbound? <y/n>“ Wenn du an der Stelle noch nicht weißt, was das ist und bedeutet, dann bestätige mit „n“. Habe ich auch gemacht, brauche ich (noch) nicht.
Die Ausgabe könnte wie folgt aussehen:
Meine neue Pi-Hole Installation ist also unter der Adresse http://192.168.178.64/admin
zu erreichen.
Uns fehlt aber ein Passwort, wenn man den Bereich „Forgot password?“ erweitert, kommt ein Hinweis wie ein neues Passwort erstellt werden kann. Dazu muss ein Terminalfenster geöffnet werden, einfach doppelklicken auf den Container oder auf den Button „>_ Console“ klicken und sudo pihole -a -p
eingeben.
Und schon steht dem ersten Einloggen nichts mehr im Weg!
Pi-Hole in der Fritz!Box als DNS-Server einstellen
Damit die Anfragen auch über den Pi-Hole laufen und diese dann auch dementsprechend geblockt werden können, muss in der Fritz!Box noch die IP-Adresse des Pi-Hole als DNS-Server eingestellt werden. Dazu musst du in der Fritz!Box auf Netzwerk > Netzwerkeinstellungen > weitere Einstellungen > IPv4-Einstellungen
Bei „Lokaler DNS-Server“ trägst du die IP von Pi-Hole ein.
Jetzt müssen wir noch sicherstellen, dass Pi-Hole immer die gleiche IP-Adresse zugewiesen bekommt. Dazu suchen wir „pihole“ in den Netzwerkverbindungen und bearbeiten den Eintrag. Es wird das Häkchen gesetzt, damit dem Gerät immer die gleiche IP zugewiesen wird. Das ganze übernehmen und fertig.
Das würde schon ausreichen, damit Pi-Hole immer die gleiche IP-bekommt. Nun können wir aber auch noch in den Netzwerkeinstellungen des Proxmox Containers diese IP-Adresse eintragen. Ein Doppelklick auf den Netzwerkadapter und der Dialog öffnet sich. IPv4 auf „Static“ stellen und die IP von Pi-Hole und die IP des Gateways, in meinem Fall die Fritz!Box, eintragen. Am besten den Container einmal neu starten.
„Conditional Forwarding“, was ist das?
Bei meinem Anfang mit Pi-Hole habe ich mich an dieser Stelle gefreut, dass jetzt schon Werbeanfragen und Tracking von Pi-Hole geblockt werden. Doch ist mir aufgefallen, dass meine Fritz!Box nicht mehr mit der Adresse „Fritz.Box“ erreichbar ist. Wenn ich http://Fritz.Box aufgerufen habe, ging eine externe Seite auf. Spooky!
Das liegt schlicht und ergreifend daran, dass die Fritz!Box noch der DHCP Server ist und die IP-Adressen und die dazugehörigen Domains verwaltet. Es gibt aber eine einfache Lösung des Problems, das „Conditional Forwarding“ in Pi-Hole.
Ihr navigiert in Pi-Hole zu „Settings > DNS > Conditional Forwarding“, das steht ganz unten. Dort steht sogar, was Sache ist, wenn Pi-Hole nicht der DHCP Server ist, nur finden und wissen muss man es. Ich habe alles andere vermutet und viel Zeit verbraten mit Suchen nach anderen Fehlern.
Aktiviere das Conditional Forwarding und trage die Daten in die freien Felder. Du musst natürlich die IP-Adressen auf dein Netzwerk anpassen. Wenn nun gespeichert wurde, ist die Fritz!Box wieder über „http://Fritz.Box“ erreichbar und auch alle anderen Geräte in deinem Netzwerk mit ihren Hostnamen.
Der Local Domain Name ist das, was die Fritz!Box an die Hostnamen anhängt. Pi-Hole ist zwar über http://pihole/admin
aufzurufen. Aber es funktioniert auch http://pihole.fritz.box/admin
. Warum erwähne ich das? Ganz einfach, die Adresse http://pihole.fritz.box
ist die FQDN (Fully Qualified Domain Name) und wichtig, für die unter euch, die Pi-Hole mit einem eigenen SSL-Zertifikat sichern wollen.
Ich hoffe, dass dir dieser Artikel geholfen hat, mehr über das Installieren von LXC Containern mithilfe der Helper-Scripts zu erfahren. Wenn du Fragen oder Anregungen hast, hinterlasse bitte einen Kommentar. Vielen Dank fürs Lesen!
Hallo Oliver,
vielen Dank für diese schöne einfache und ausführliche Anleitung!
Ich habe dank dir jetzt auch einen Pi-hole am laufen !!!
Mach weiter so!
Hi, danke für die Anleitung, super easy 🙂 Hast du schon Unbound installiert bzw weißt du wie man das nachträglich rein macht? Hab festgestellt das ich mit den Local DNS Records von Pi Hole leider keine Ports hinzufügen kann, und würde gerne vermeiden die immer extra eintippen zu müssen.
Hast du da eine einfache Lösung oder Erfahrungen?
LG
Pingback: Pihole mit Lighttpd Server SSL – HTTPS fähig machen - Mojo - Blog
Hallo, ansich eine schöne Anleitung, leider funktioniert sie nicht. Ersteinmal ist die installation mit Defaultwerten doch recht spärlich ausgestattet, gerade einmal 512 MB RAM und ein CPU Core. Gerade wenn auch noch unbound installiert werden soll, ist das zu wenig. Da kann man noch einmal drauf eingehen, dass hier nich mit „Default Settungs“ installiert erden sollte.
Des weiteren lässt sich das Passwort so wie gezeigt nicht setzen, da der Container bereits die Ausfürung des Komandos sudo pihole -a -p ignoriert und einfach stumpf nach dem root Passwort fragt (welchrs wir ja nicht haben, wohlgemerkt).
Ich habe den Container wieder rausgeschmissen und nach einer andere Anleitung ohne den Helper installiert. Dann lief es.
Hallo asdf,
hast Du die Defaultsettings versucht anzupassen? Wurde von Dir dann ein root Passwort vergeben? Das muss man sich dann eben auch merken. Der „Automatic Login“ (Default) in Proxmox wird in diesem Fall überschrieben.
Im Übrigen läuft bei mir Pihole mit den Default Einstellungen. Paralleler Zugriff von drei Rechnern, Handys, Apple TV usw., was eben in einem Haushalt so vorkommt. Die CPU Auslastung ist bei mir bei maximal 0,7 %, beim Booten wohlgemerkt ansonsten normal bei unter 0,15 %.
Kann es sein das Dein Proxmox Host zu schwach ist?
Und falls etwas an sein Limit stößt, ist das Erhöhen der CPU Einheiten oder dem Speicher in einem LXC Container, in Proxmox, außerdem problemlos möglich. Einfach unter „Resources“ erhöhen.
Zum Thema „unbound“, in dem Artikel geht es vorrangig um die Installation von Pihole. Alles andere sind weitere Themen für weitere Artikel, die diesen Blogeintrag nur unnötig verkomplizieren. Es sollte ein Schritt nach dem anderen gegangen werden, einer meiner Lehrmeister hatte da einen schönen Spruch: „Wenn man versucht zwei Schritte auf einmal zu gehen, fällt man über die eigenen Füße.“
Gruß
Oliver
Pingback: LXC Container in Proxmox erstellen: Mein Guide – testblog
Wenn ich den ersten Befehl eingebe, kommt die Fehlermeldung „No PiHole Installation found“ das Geschieht direkt nach dem Start des bash -c „$(wget -qLO – https://github.com/tteck/Proxmox/raw/main/ct/pihole.sh)“ und dem bestätigen des ersten Dialogs
und wenn ich das in der Proxmox Shell mache, dann wartet er kurz um dann wieder den Prompt zu zeigen. Da passiert nichts, außer vermutlich das Herunterladen