Nginx Proxy Manager

Blackhawk77

Benutzer
Mitglied seit
07. Apr 2016
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Moin zusammen,

ich habe folgendes Problem :
ich möchte Nginx Proxy Manager als reverse proxy auf meiner DS420+ als Dockercontainer laufen lassen.
Die Installation funktioniert soweit auch und ich kann proxyhosts hinzufügen.

Zur Umgebung :
ISP : Deutsche Glasfaser (IPv6)
IONOS vServer (VPS+) mit fester IPv4&IPv6 (da drauf 6tunnel als Portmapper, damit zugriff von außen über IPv4&6 möglich ist)
6tunnel port 80 und 443 zeigt auf die IPv6 der DS420+
IONOS .de Domain (A und AAAA Record auf die IPv4&6 des vServers gesetzt)
Firewall auf dem vServer und der Fritzbox Port 80 und 443 zugelassen (Firewall auf DS420+ vorübergehen deaktiviert)
Docker auf DS420+ installiert und läuft
Portainer als Container läuft auch
Nginx Proxy Manager als Container installiert und läuft auch.
Proxyhost anlegen funktionier, SSL Zertifikat beziehen schlägt aber fehl (Interner Fehler)

Wenn ich diesen Proxyhost nun im Browser aufrufe, lande ich immer an der DSM Adresse mit Port 5001 und die Seite bleibt weiß oder
es kommt der Fehler "Diese Seite kann nicht angezeigt werden".

Als Beispiel Plex :
Plex läuft auf der DS420+ als Packet unter Port 32400
Nginx Proxy Manager hat als Proxyhost plex.meine_Domain.de und soll intern auf Port 32400 verbinden.
Die Adresse im Browser ändert sich aber immer zu https://plex.meine_Domain.de:5001

Warum ist das so und wie kann ich das ändern?

Ich habe das ganze Szenario zum Testen mal auf einem Raspberry Pi 3b installiert und angepasst, da läuft es
sofort ohne Probleme inklusive SSL und allem was ich will. Also schließe ich einfach mal DNS&co fehlkonfigurationen aus.

Wie bekomme ich die DS420+ dazu, dass Nginx Proxy Manager auf Port 80 und 443 lauscht und nicht die Diskstation?

Viele Grüße,

Blackhawk77
 

ctrlaltdelete

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
10.051
Punkte für Reaktionen
3.617
Punkte
414
Hast du im DSM unter externer Zugriff -> Erweitert: den Hostnamen rausgenommen?
 

ctrlaltdelete

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
10.051
Punkte für Reaktionen
3.617
Punkte
414
Im Anmeldeportal ist auch nichts eingetragen?
 

ctrlaltdelete

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
10.051
Punkte für Reaktionen
3.617
Punkte
414
Ich denke du musst erst das Zertifikat fixen:
Fix: If you are using Synology and let’s encrypt certificate via Control Panel / Security / Certificate Nginx Proxy Manager will not work. If you are using Synology Web Station package Nginx Proxy Manager will not work.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Das Zertifikat muss im Docker Container angefordert werden und nicht im DSM. Zusätzlich Reverse Proxy Einträge im DSM löschen und die Webstation deinstallieren. Und du musst den NGINX Container so deployen, dass 80+443 Host auf 80+443 Container gemappt sind
 
  • Like
Reaktionen: ctrlaltdelete

Blackhawk77

Benutzer
Mitglied seit
07. Apr 2016
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Das Zertifikat muss im Docker Container angefordert werden und nicht im DSM. Zusätzlich Reverse Proxy Einträge im DSM löschen und die Webstation deinstallieren. Und du musst den NGINX Container so deployen, dass 80+443 Host auf 80+443 Container gemappt sind
Im DSM hab ich kein Zertifikat angefordert. Reverse Proxy im DSM sind keine Einträge vorhanden. Webstation habe ich nicht installiert. Die Ports 80, 81 und 443 sind auf den Container gemappt 80:80, 81:81 und 443:443
Wenn ich im Nginx Container ein Zertifikat anfordere, klappt das ja eben nicht auf der Diskstation. Hab es auf dem Raspberry genau so gemacht und da geht es sofort ohne Probleme, das ist ja mein Problem.

Ich denke du musst erst das Zertifikat fixen:
Fix: If you are using Synology and let’s encrypt certificate via Control Panel / Security / Certificate Nginx Proxy Manager will not work. If you are using Synology Web Station package Nginx Proxy Manager will not work.
Synology und lets encrypt Zertifikate sind keine mehr vorhanden, die habe ich gelöscht
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.043
Punkte für Reaktionen
328
Punkte
189
Ich habe das nun auf Deinen Vorschlag hin in einer VDSM eingerichtet. Da ist nichts installiert, ausser Docker und auch sonst nichts hinterlegt. Ich bekomme die Ports 80 und 443 so nicht ans laufen, irgend ein weiterer Dienst blockt das. Du hattest gemeint, neben Webstation auch den DSM-ReverseProxy zu deaktivieren. Wie mach ich das dann dauerhaft im DSM6?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Es darf nur kein Reverse Proxy angelegt sein. Wie meinst du das mit "du bekommst das nicht ans Laufen"? Startet der Container nicht oder wie?
Hast du den Container ins Host-Netzwerk gehängt?
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.043
Punkte für Reaktionen
328
Punkte
189
Alles läuft soweit, jedoch den Container kann ich nur dann starten, wenn ich die Aussenports nicht auf die Standardports lege, also nicht auf 80:80, 81:81, 443:443 sondern zB. 8080:80, 8181:81, 4430:443, da ich ansonsten eine Meldung vom DSM bekomme, dass systemseitig die Standardports schon belegt sind.

Container ins Host-Netzwerk

Da ist nun die Frage, ob Du bezogen auf das Device die Produktiv- oder Back-NAS meinst. Bezogen auf das Netzwerk habe ich alle DS´n und somit auch den VDSM im gleichen Netzwerk, in welchem auch der Router hängt.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Ich meine den Container nicht im Bridged Netz erstellen, sondern im Host-Netz (in dem Fall dann das Host Netz des vDSM)
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.043
Punkte für Reaktionen
328
Punkte
189
Der Container läuft im Bridged Netz, den Hostmodus habe ich noch nicht getestet, dann gehts ja vielleicht.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Ja. Das wird auch oft empfohlen, es so umzusetzen. Bei mir läuft der Proxy Manager auch im Host Netz. Genau wie der AdGuard Container. Da gibt es mit der Bridge oft Probleme / Einschränkungen
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499

Blackhawk77

Benutzer
Mitglied seit
07. Apr 2016
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Moin, ja gibt es. Ich hab das ganze jetzt anders gelöst. Ich habe einfach im Virtual Machine Manager ne VM mit Ubuntu aufgesetzt, Docker da drauf und jetzt läuft alles so, wie es soll. Mit dem Host Netzwerk habe ich jetzt gestern nicht mehr ausprobiert, könnte sein, dass es dann läuft.
Was ich bei der VM komisch fand, Ubuntu Server 22 ließ sich nicht installieren, 20 auch nicht. Ich musste auf Version 18 gehen, das lief und dann davon ein Upgrade machen. Für den Fall, dass das noch mal jemand so macht und die selben Probleme bekommt.

Ich glaube, bei mir war das Problem, dass ich IPv6 habe und im Docker auf DSM ist kein IPv6 aktiv. Keine Ahnung, auf dem Pi und der VM läuft jedenfalls alles sofort.
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.043
Punkte für Reaktionen
328
Punkte
189

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Wahrscheinlich liegt es daran, dass DSM die Ports 80 und 443 nutzt, um zu 5000/5001 weiterzuleiten.
Ich dachte, dass es im Host Mode läuft. Ich selbst betreibe es ja wie gesagt nicht auf der DS. Und wie man DSM austreiben kann, auf Port 80/443 zu lauschen, weiß ich leider nicht.
Auch wenn ich es normalerweise verteufel, wäre hier wohl die sinnigste und schnellste Lösung ein MACVLAN zu erstellen und darin den Container zu betreiben. Da kannst du dir aber dann das vDSM sparen und es im DSM machen.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
13.944
Punkte für Reaktionen
4.802
Punkte
499
Verwendest du Portainer? Damit kann man easy ein MACVLAN anlegen. Dabei bekommt der Container eine eigene Adresse und kann faktisch alle Ports binden. Wenn nicht, muss man das via CLI machen, da die DSM Docker UI das nicht anbietet.
Code:
docker network create -d macvlan \
  --subnet=172.16.86.0/24 \
  --gateway=172.16.86.1 \
  -o parent=eth0 \
  my-macvlan-net
Wobei du natürlich das Subnet ersetzen musst durch deinen Adressbereich. Genau wie das Gateway.
Und wenn du VMM betreibst, ist das Parent Interface nicht eth0, sondern ovs_eth0 (openvswitch)
Dann beim Container deploy müsstest du diesem direkt die IP Adresse mitgeben (--ip 172.16.86.42).
Wobei ich dir immer noch nicht sagen kann, ob du damit tatsächlich ein Wildcard Cert bekommst. Denn STRATO bietet wie gesagt keine DNS-API an und der NGINX PM bietet für STRATO auch keine DNS-Challenge an. Du kannst es natürlich dennoch versuchen.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat