Zwei DS über no-ip ansprechen, klappt nicht

Status
Für weitere Antworten geschlossen.

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
@Thorndike - ein öffentlicher Port an der Fritzbox kann nur an EIN Netzwerkgerät weitergereicht oder umgeleitet werden. Oder was denkst du über welche Ports ich rede?
 

Arwed!

Gesperrt
Mitglied seit
23. Dez 2011
Beiträge
169
Punkte für Reaktionen
3
Punkte
24
Wie die Fehlermeldung laut und deutlich sagt versuchst du eine HTTP Verbindung zu einem HTTPS Port aufzubauen. Das muss schief gehen. Versuch einfach mal:

https://diskstation716.no-ip.info:5003

Erster Versuch, https://diskstation716.no-ip.info:5003 Fehlermeldung und sie werden auf die Fritzbox weitergeleitet. Okay.
Zweiter Versuch, gleicher Browser FF42 und nichts verändert, Diskstation 716 Einlogbildschirm. Jaaa.
Stört mich nicht wenn es immer 2 Versuche brauchen sollte.
Jetzt versuche ich mal auf die DS212 zu kommen. Funktioniert mit https://diskstation212.no-ip.org:5004 im zweiten Versuch ohne Änderungen.
Okay, muß zwei Versuche machen aber geht.
Letzte Nacht ging es nicht.
 

heavy

Benutzer
Mitglied seit
13. Mai 2012
Beiträge
3.799
Punkte für Reaktionen
176
Punkte
129
@ Arwed Wenn du beim ersten mal auf die Fritzbox kommst, dann musst du noch den Fernzugriffs Port der Fritzbox (der wenigstens bei meiner eben auch 443 ist) auf einen anderen (z.B.450) legen, sonst kommt sich das in die Quere. Auch wenn es eigentlich durch die Portangabe hinter der URL nicht sein sollte. Aber nochmal zum klarstellen. Egal ob du http://716 oder http://212 eingibst, du landest immer auf deinem Router, nur der Port also :5003 oder :5004 entscheidet auf welcher DS du landest. Alles andere ist mit wirklich Aufwand verbunden. Und dann selbst mir zu hoch. (in den Proxy kann ich mich eventuell noch einlesen aber richtige Hardware die dann die Umleitung macht! nee zu viel)

@Thorndike
falls du meinen ersten Post an dich überlesen hast und auch nochmal bezugnehmend auf deinen Post #20 bitte schreibe uns wie du dir das mit dem Proxy vorstellst #11(oder schicke es mir als PN) denn aktuell hat niemand diese Lösung die du im Ansatz skizziert hast auf einer DS zum laufen bekommen. Bis jetzt wurden php scripst geschrieben die dann die verschiedenen Ports automatisch angefügt haben.
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.959
Punkte für Reaktionen
8
Punkte
58
Zuletzt bearbeitet:

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
74
Punkte
88
@heavy: es gibt die Möglichkeit den mitgelieferten Apachen als reverse-Proxy umzubauen, was sogar nicht nur mit Ports, sondern auch mit URLs funktioniert (also auch URLs auf Ports weiterleiten). Bis DSM 5.1 lief das auch, mit irgendeinem 5.2er Update hat das nicht mehr funktioniert... Anleitung müsste ich erst mal suchen.
Es gibt ein Community-Paket "HA-Proxy", das leider nicht alle Funktionen der Original-Paketes beinhaltet. Das SynoCommunity-Paket konnte beim letzten Test die Dienste nur nach Namen verteilen (dsm.deindynds.org=>Port 5001, audio.deindyndns.org=>8801 usw.)
Mit DSM 6.0 gibt es für manche DSen ein Paket "HA-Manager" das zumindest Ports auf verschiedene andere Ports/DSen weiterleiten kann.

Stefan
 

heavy

Benutzer
Mitglied seit
13. Mai 2012
Beiträge
3.799
Punkte für Reaktionen
176
Punkte
129
Also das was du mit dem HA-Proxy beschreibst mach ich mit einem php Script dafür brauche ich keinen Proxy. Wirklich interresant wäre es wenn alles über einen Port läuft so wie die Vhosts. Wenn du die Anleitung findest, dann schick sie mir mal auch wenn sie nicht mehr aktuelle ist vielleicht gibt sie mir die Tipps die ich brauche um mich prinzipiell einzulesen.
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
74
Punkte
88
eine Datei erstellen:
/usr/local/etc/reverse_proxy.conf
Rich (BBCode):
<IfModule !proxy_module>
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
</IfModule>

NameVirtualHost *:443
<VirtualHost *:443>
ServerName DS.deindyndns.org
SSLEngine On
SSLProxyEngine On
ProxyRequests Off
 ProxyVia Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

RewriteCond %{REQUEST_URI} ^/[a-z]+$
RewriteRule ^(.*)$ $1/ [R=301,L]

ProxyPass /audio/ https://localhost:8801/
ProxyPassReverse /audio/ https://localhost:8801/
</VirtualHost>
hinter ProxyPass und ProxyPassReverse die jeweilgen URLs und die jeweiligen Ziele mit Ports und ggf. IP angeben.

in der /etc/httpd/sites-enabled-user/httpd-ssl-vhost.conf-user die reverse_proxy.conf includen
Rich (BBCode):
<VirtualHost *:443>
ServerName deinservername
DocumentRoot "/var/services/web/derserver"
ErrorDocument 403 "/webdefault/sample.php?status=403"
ErrorDocument 404 "/webdefault/sample.php?status=404"
ErrorDocument 500 "/webdefault/sample.php?status=500"
SSLEngine on
</VirtualHost>
include /usr/local/etc/reverse_proxy.conf
am Schluß "httpd -k restart"

Auf die Art und Weise kann man DSM, Audiostation, Videostation usw. für Browser über Port 443 erreichbar machen (was man bei DSM 6.0 nicht mehr braucht, weil da der Alias endlich auch über Port 80/443 geht, außer für DSM glaube ich).

Stefan
 

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
So wie bei stefan_lx sieht das bei mir auch aus. Wenn man dann noch eine zweite Konfig mit einem anderen Servername anlegt kann man auch mit mehreren externen Domains arbeiten und von da aus unterschiedlich weiterleiten. Wie immer macht die automatische Generierung der Dateien aus dem DSM alles deutlich unübersichtlicher als es im plain Apache ist.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
@Thorndike @stefan_lx - mit Alias habe ich es so auch am laufen. Das geht wunderbar auch mit dem SSL Zertifikat Class 1. Hat von euch schon mal einer probiert die Dienste anstatt per Alias per Subdomain verfügbar zu machen, also dienst1.ddns.de, dienst2.ddns.de ... ? Das sind dann verschiedene Server Names und damit zwangsweise auch mehrere Zertifikate (Stichwort SNI).
Hatte leider noch keine Zeit mir mal mehrere URLs von extern auf meine IP zu legen, um das mal richtig zu testen (bis jetzt hatte ich das nur mal im lokalen DNS server probiert)
 

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
@Fusion: Auf Grund der Eigenheiten des SNI bei der Aushandlung der SSL Verbindung geht das nicht mit einzelnen Zertifikaten für jede Domain. Apache weiss ja bei der Aushandlung der Verbindung noch nichts über den angefragten Domain Namen. Was funktioniert hat ist die Verwendung von AlternateNames im Zertifikat, die werden bei der Prüfung akzeptiert. Dann hat man aber eben nur ein Zertifikat für alle Server. Diese AlternateNames gehen aber mit den einfachen (kostenlosen) Zertifikaten nicht. Alternativ dann self signed, teurere Zertifikate oder auf Let's Encrypt hoffen :)
 

Manalishi

Benutzer
Mitglied seit
13. Jan 2014
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Hallo,

auch ich versuche hinter einem Reverse Proxy mehrere Dienste auf mehreren Diskstations anzusprechen.

Habe dazu auf einen Apache 2.4 gewählt, den ich über Port 443 durch eine IPCOP Firewall anspreche. Hierbei kommt es zu folgendem Verhalten

Photostation ist ok!

ProxyPass /photo/ http://192.168.2.XXX/photo/
ProxyPassReverse /photo/ http://192.168.2.XXX/photo/

Bei der Music Station wird eine Verbindung zur DS aufgebaut, aber die die Seite wird "leer" angezeigt

ProxyPass /music/ http://192.168.2.XXX:5000/music/
ProxyPassReverse /music/ http://192.168.2.XXX:5000/music/

RMB im Browser zeigt den html code der Seite.

Im logfile des Apache habe ich folgendes gefunden:

File does not exist: C:/Apache/htdocs/synoSDSjslib/sds.js

Es werden wohl beim Login scripte verwendet die nicht erreichbar sind....

Hat jemand eine Idee, was ich falsch mache?

/Frank
 
Zuletzt bearbeitet:

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
Also

C:/Apache/htdocs/synoSDSjslib/sds.js

sieht mir doch sehr merkwürdig aus. Unter Linux dürfte es eine derartige Pfadangabe nicht geben, das ist ein Windows Pfad.
 

Manalishi

Benutzer
Mitglied seit
13. Jan 2014
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Sorry ,

war etwas kurz angebunden mit der Beschreibung meiner Konfiguration. Der Apache läuft auf einem win 2012 srv. C:/Apache ist das Installationsverzeichnis.

Ich denke das "C:/Apache/htdocs/" entspricht dem Eintag "DocumentRoot" in der Konfiguration stefan_lx
Hier ist es vielleicht notwendig Rewrite Rules einzusetzen. Ich verstehe leider nur teilweise die Syntax in den Config files.

Inzwischen habe ich versucht die Reverse Proxy Installation von stefan_lx auf einer DS (DSM5.2) zu konfigurieren.

Dabei ist es mir gelungen die index.html im "DocumentRoot" aufzurufen.

Reverse Proxy hat nicht funktioniert.
Aufruf der Photostation oder andere Dienste bringen die Meldung "HTTP 404" (Webpage cannot be found)

Meine "reverse_proxy.conf"

NameVirtualHost *:80
<VirtualHost *:80>
ServerName 192.168.2.71
ProxyRequests Off
ProxyVia Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

RewriteCond %{REQUEST_URI} ^/[a-z]+$
RewriteRule ^(.*)$ $1/ [R=301,L]

ProxyPass /audio/ http://192.168.2.71:8800/
ProxyPassReverse /audio/ http://192.168.2.71:8800/

ProxyPass /file/ http://192.168.2.71:7000/
ProxyPassReverse /file/ http://192.168.2.71:7000/

ProxyPass /ph/ http://192.168.2.71:8080/photo/
ProxyPassReverse /ph/ http://192.168.2.71:8080/photo/

</VirtualHost>

/Frank
 
Status
Für weitere Antworten geschlossen.
 

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