Pi-Hole (und später Unbound) auf QNAP

TWIN013

Ensign
Registriert
Jan. 2006
Beiträge
138
Hallo!

Vorab: ich war mir nicht ganz sicher in welches Unterforum dieser Thread gehört, bei Bedarf bitte verschieben.

In meiner Corona-Langeweile habe ich mich in einem Anflug von Größenwahn dazu hinreißen lassen, mir die Installation von Pi-Hole auf meinem QNAP NAS vorzunehmen, stoße aber gerade an einen Punkt, an dem ich nicht so recht weiterkomme...
Die ursprüngliche Installation habe ich gemäß der Anleitung von QNAP selbst als Docker Image vorgenommen und diese läuft auch einwandfrei. Nachteile: keine Updates möglich, sondern es muss in Docker-Manier jedesmal bei einem Update der Container neu erstellt werden. Außerdem ist mir die Integration von Unbound auf diesem Wege derzeit noch vollkommen schleierhaft.

Also habe ich mich alternativ an die Installation in einem Mini-Ubuntu gemäß dieser Anleitung gestürzt, scheitere aber am Befehl "sudo usermod -aG sudo piuser", der vom System mit einem "sudo: unable to resolve host Pi-Hole" quittiert wird. Hinweis dazu: ich habe genau 0,0 Unix-Kenntnisse und tippe stupide ab, was in der Anleitung steht... dummerweise bewegen sich meine Docker-Kenntnisse auf demselben Niveau. ;)
Ohne diese Rechtevergabe scheine ich jedoch nicht in der Lage zu sein, die Verbindung per Putty herzustellen, die im folgenden Schritt erforderlich ist, komme hier also nicht weiter.

Für Tipps zu beiden möglichen Lösungen wäre ich euch sehr dankbar.

Gruß!
TWIN013
 
Ich kann dir nicht direkt weiter helfen aber ich habe auch aufgegeben oihole in docker laufen zu lassen. Auf einem Pi ist die Installation deutlich einfacher und es gibt bedeutende weniger Probleme :)
 
ich habe pihole via docker problemlos am laufen und verstehe die problematik noch nicht so ganz.
dass der container bei einem update neu erstellt werden muss, das ist richtig, allerdings gibt es dafür ja docker volumes, sodass daten wie die konfiguration außerhalb des containers gespeichert werden.
ich schätze mal, dass du dem container also kein volume zugewiesen hast, kann das sein?
ich würde dir ehrlich gesagt die docker variante empfehlen. wie du sagst, die läuft ja auch einfach. man muss nur das volume zuweisen, damit die runtime-daten auch persistiert werden!

edit: ich kenne mich jetzt null aus mit dem QNAP und dieser container station, aber hier wird das gezeigt:
https://blog.linuxserver.io/2017/09/17/how-to-setup-containers-on-qnap/
runter scrollen bis etwas unter der hälfte der seite, bei shared folders. da sieht man es.
du brauchst für pihole zwei volumes. eines muss den mountpoint "/pihole/etc/" haben und eines "/pihole/dnsmasq.d/"
wenn du das eingestellt hast, dann werden die ganzen daten, die pihole zur laufzeit erstellt und benötigt, in diesen volumes gespeichert und bleiben dort auch bestehen. du weist also quasi zwei "normale ordner" auf deinem NAS dem docker container zu, sodass dieser darauf zugreifen kann.

edit2: zur anderen methode. mit dem befehl "sudo usermod ...." sollen ja nur dem neu erstellten user "piuser" adminrechte (sudo) zugewiesen werden, bzw genauer gesagt, er soll der gruppe sudo hinzugefügt werden, und dann hätte er adminrechte. ich bin meistens auf debian unterwegs und von dort kenne ich noch andere wege, einem user sudo-rechte zuzuweisen...
wieso beim aufruf dieses befehls er den host nicht resolven kann (was steht denn in der datei /etc/hosts drin? ist dein hostname wirklich "Pi-Hole"? bin mir grad gar nicht sicher, ob ein hostname einen bindestrich enthalten darf/kann..) kommt mir allerdings schon auch komisch vor. er soll ja nur den user der gruppe zuweisen... aber ich bin auch kein linux spezialist, ganz ehrlich :D

das alles find ich ist aber an der stelle erstmal egal, denn statt dieser anleitung würde ich einfach mal die offizielle anleitung versuchen. die benötigten zusätzlichen user und alles werden dann automatisch erstellt. also lösche den user piuser einfach wieder (sudo userdel piuser) und mach dann das wie hier:
https://github.com/pi-hole/pi-hole/#one-step-automated-install

im endeffekt ist das also ein aufruf.

@Askedos auch auf nem pi kann man übrigens docker laufen lassen, und zwar ziemlich gut :D
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: AB´solut SiD
@Cai-pirinha: Vielen Dank erstmal für Deine ausführliche Antwort, ich denke zumindest der Weg mit den Shared Folders dürfte mir das Leben bei Updates etc. schon einmal einfacher machen! Ich bin wie geschrieben absolut ahnungslos was Docker angeht, aber anhand des Links kann ich mich durchkämpfen, nehme ich mal an. Hier stellt sich dann allerdings im Anschluss die Frage, wie man Unbound integrieren könnte... auch dazu gibt es Docker Container, nur wie "verbindet" man das dann miteinander und richtet Unbound ein etc...?

Die Installation in der LCX sollte ja eigentlich in den Grundzügen einem Pi entsprechen, aber da scheiterte ich eben bisher an meinen nicht vorhandenen Linux-Kenntnissen.
 
richtig, die installation wie in deiner anleitung ist ja auch nur ein ausführen der ganz normalen befehle in der konsole. deshalb kannst du auch nach der ganz normalen offiziellen anleitung vorgehen. das macht keinen unterschied!

wegen unbound docker muss ich selber mal schauen...
die geschichte mit den volumes ist auf jeden fall absolutes grundwissen zu docker, denn wie gesagt, ohne volumes wird ja nichts persistiert und man fängt bei jedem reboot von vorne an :D das ist nicht sinn der sache!
 
Ich habe den PiHole Container noch einmal von Grund auf neu erstellt, dabei auch wie beschrieben den Dockuser angelegt und die Pfade folgendermaßen hinterlegt:

1610405624341.png


Was mich jetzt ein wenig verwundert ist, dass anscheinend keinerlei Dateien in den beiden Ordnern abgelegt werden... kommt das erst mit der Zeit, oder habe ich da einen Schritt vergessen?
 
das dürfte eigentlich nicht lange dauern nein.. pihole läuft aber schon, oder? :D
und die pfade sind aber schon "richtig herum", oder? also nicht dass /pihole/etc der externe pfad ist und /share/... der mountpoint im docker.
 
PiHole läuft und arbeitet einwandfrei. Die Pfade kann man eigentlich nicht vertauschen, da der Pfad auf der QNAP "geklickt" wird, während Mountpoint manuell eingegeben wird.

Edit: ich sehe aber gerade diese Meldung im Terminal. "sed: couldn't write 31 items to stdout: Broken pipe"
Kann das an dem User liegen, der zuvor eingerichtet wurde?

Edit2: Hat mir keine Ruhe gelassen und ich bin dabei das Ding nochmal neu aufzubauen. Beim Eintragen sieht es also folgendermaßen aus:

1610465678651.png


Ergebnis ist aber dasselbe: "sed: couldn't write 31 items to stdout: Broken pipe"
 
Zuletzt bearbeitet:
ich denke nicht, dass der sed / pipe fehler was damit zu tun hat.. und schon gar nicht dürfte das was mit dem user zu tun haben.

also die mounts sind ja korrekt... woher kommen denn die volumes vom host? sind die pfade manuell erstellt worden oder über die oberfläche? vielleicht passt da was von den berechtigungen her nicht.. aber eigentlich dürfte das bei einer solchen oberfläche, die ja eigentlich einfach gehalten sein sollte und dinge einfacher machen sollte, nicht passieren..
 
Erstellt über die QNAP File Station. Dort kann man Rechte vergeben für einzelne User, das hatte ich gemacht. Habe es jetzt nochmal ohne User versucht, aber wie gesagt mit demselben Ergebnis. Vielleicht sollte ich mich doch nochmal an die andere Variante setzen...

Edit: Ich habe PiHole und Unbound in einem Ubuntu-Container (Anleitung) zum Laufen bekommen. PiHole ist ansprechbar und funktioniert, Unbound installiert und soweit auch lauffähig. Jetzt scheitere ich jedoch daran, Unbound auch eine Verbindung ins Netz herstellen zu lassen, habe aber die Vermutung, dass es sich hier eher um ein Firewall-Problem handelt. Kurz zu den Rahmenbedingungen: der Container läuft als Fixed-IP 192.168.1.50, in der UDM-Pro habe ich den Port 5335 auf eben diese IP weitergeleitet (TCP und UDP).
Der "dig heise.de 127.0.0.1 -p 5335" scheitert jedoch mit einem Timeout.
Wo liegt denn da mein Denkfehler...? :sex:
 
Zuletzt bearbeitet:
@TWIN013

Welche Mountpoints musstest Du beim Ubuntu-Container schlussendlich anlegen damit die Installation als auch Konfiguration von PiHole & unbound persistent sind?
 
Bin mit dem Thema leider nicht weiter gekommen und habe irgendwann aufgegeben. :(
Bei mir läuft mittlerweile AdGuard Home als Docker Container... sorry.
 
Hallo zusammen,
schon etwas her das ganze... Falls hier noch andere ausser mir landen, würde ich gerne noch etwas dazu tun. Beschäftige mich erst seit 1-2 Tagen mit Docker auf einem QNAP und versuche mich da etwas einzuarbeiten. Denke für den Start wäre aber ein reines Linux besser geeignet als mit dieser ContainerStation. Im Prinzip bleibt es aber das gleiche.

Die shares sollen wie in der offiziellen PiHole Docker Anleitung lauten:
# Volumes store your data between container upgrades
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
Also dementsprechen die shares "etc/pihole" und "/etc/dnsmasq.d" anlegen. So klappt das bei mir dann auch.

Am einfachsten sollte man auch gleich einen separaten oder virtuellen Netzwerkanschluss mit einer festen IP für den PiHole Container mit einbinden. Dann hat man am Ende eine separate IP nur für DNS und keine Konflikte mit gleichen Ports von anderen Containern, Apps etc.
(siehe Advanced Settings/Network/Network Mode: Bridge/Static IP: ...)

so long...
 
Habe mich nun für klutchell/unbound entschieden, weil es schon mit den root dns Serveradressen vorkonfiguriert ist und nicht etwa wie andere mit cloudflare, was imho überhaupt keinen Sinn ergibt.

Da ich es nicht geschafft habe, Zugang zu einer unbound.config datei zu erlangen/erstellen um zumindest die Ports anzupassen, musste ich mit den Standardeinstellungen klar kommen.

Zum laufen habe ich unbound bekommen, indem ich für PiHole sowie unbound eine eigene IP (virtual) gewählt habe und dann in PiHole als DNS die IP von unbound gesetzt und es lief.

Ob das wiederum sinnvoll ist, kann ich leider nicht sagen, da ich sowas von Anfänger bin. Habe das ganze vorsichtshalber auch wieder gestoppt und lasse vorerst PiHole wieder alleine laufen.

Falls sich jemand, mit Erfahrung auf dem Gebiet, hierher verirrt bitte ich um Mithilfe.
Das muss doch auch mit der ContainerStation vernünftig machbar sein.
 
Warum passt Du die Ports nicht in der Container Station an bzw biegst sie eben entsprechend um?
 
Ich nutze derweil AdBlockHome statt PiHole, ansonsten aber eigentlich genauso. MacVLAN eingerichtet, Unbound und AdBlockHome bekommen jeweils eigene IP-Adressen, dann gibt es auch keine Probleme mit verschobenen Ports usw.
 
Hallo zusammen, sorry dass ich den alten thread wieder nach oben hole aber ich bastel genau an dem gleichen Problem.
Sprich AdGuard + unbound im Docker auf einem Qnap.

Bei einer synology läuft alles perfekt, aber auf der qnap
bekomme ich unbound nicht zum laufen
AdGuard hingegen läuft absolut perfekt

verwenden will ich das klutchell/unbound image.
habe den beiden Containern virtuelle Netzwerke mit eigenen IP Adressen gegeben
Das läuft auch soweit
Aber wenn ich dann die IP von unbound in den upstream Server bei AdGuard eintrage geht gar nix mehr…
sprich 192.168.1.21:53 als Beispiel
Was habe ich vergessen?

muss ich da Router-seitig noch irgendwelche Ports um biegen beziehungsweise freigeben?
 
Welche CPU steckt denn in der QNAP? Es gibt von Unbound z.B. auch ein spezielles Image für den Raspi, das vermute ich jetzt mal zuerst als Ursache. Es kann aber auch immer ganz hilfreich sein, mal einen Auszug der Logs vom Unbound-Container anzuschauen.
 
Zurück
Oben