Mein Beitrag Reverse SSH Tunnel – Schritt für Schritt ist mit weitem Abstand der beliebteste Beitrag in diesem Blog mit über 31.000 Zugriffen in gut drei Jahren. Dieser Beitrag hier ist ein Spin-Off davon, der sich im Laufe der Zeit aus verschiedenen Fragen anderer User ergeben hat. Ich empfehle, sich erst mit dem Basisbeitrag zu beschäftigen und einen Reverse Tunnel zum Laufen zu bringen, bevor ihr hier weitermacht.
Unser Tunnel kann eine Menge. So ist es nicht nur möglich, den Remote Pi, sondern auch andere Geräte im Remote Netzwerk direkt anzusprechen. Hierfür wird der localhost im Tunnelkommando durch die IP Adresse des anzusprechenden Geräts ersetzt.
Anstatt
/usr/bin/autossh -p2000 -fNC -R 8889:localhost:80 pi@dyn.IP.adresse
schreibt man z.B.
/usr/bin/autossh -p2000 -fNC -R 8889:192.168.178.120:80 pi@dyn.IP.adresse
Damit wird das Gerät mit der IP Nummer 192.168.178.120 angesprochen. Da der Zielport 80 lautet, wird hier der auf diesem Gerät laufende Webserver angesprochen. 80 ist ja bekanntermaßen der reservierte Port für das http Protokoll. Es könnte sich dabei z.B. um ein IoT Device handeln. Auf einem PC im Netz des Gateway Pi gebt ihr im Browser die IP des Gateway Pi ein, gefolgt von einem Doppelpunkt und dem Port 8889. Wenn alles klappt, kommt ihr bei der Remote Cam – oder was auch immer ihr ansprechen wollt – heraus. Wichtig ist ferner, dass das Remote Device eine feste IP Adresse hat. Das könnt ihr am einfachsten über die Routereinstellungen machen indem ihr die gerade zutreffende IP Adresse für das Gerät reserviert. Bei einer Fritz!Box sieht das z.B. so aus:
Wichtig ist das Kreuzchen bei "Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen".
Wenn ihr den im Remote Netz verbauten Router ansprechen wollt, geht ihr ganz ähnlich vor. Der Router hat von Haus aus immer dieselbe IP Adresse im LAN. Bei der Fritzbox ist das üblicherweise die 192.168.178.1 – bei anderen Router müsst ihr die Adresse entsprechend anpassen.
Als Ausgangsport – also den Port den beim Gateway in den Browser eingebt, könnt ihr eine beliebige freie Portnummer nehmen.
Der Zielport ist fest vorgegeben, da der Router in der Regel mit einer SSL Verschlüsselung angesprochen wird – also mit https:// . Der https:// Port läuft üblicherweise auf 443 (es sei denn, ihr habt den Router umkonfiguriert).
Das Tunnelkommando wird folglich mit -R 8889:192.168.178.1:443 erweitert.
Hat der Gateway Pi die lokale IP Adresse 192.168.178.20, dann muss man im Browser beim Gateway folgende Adresse eingeben: https://192.168.178.20:8889
Damit werden die Daten vom Gateway an den Remote Pi geschickt, der seinerseits die lokale Adresse des Routers mit der https:// Portadresse anspricht. Es kommt ggf noch eine Zertifikatswarnung, die ihr aber übergehen bzw. akzeptieren könnt.
So landet ihr auf eurem Remote Router, den ihr wie gewohnt administrieren könnt.
Hi Chris,
danke für Deine Anleitung !!
Ich habe versucht das ganze so umzusetzen, jedoch bekomme ich leider keinerlei Verbindung zustande.
Der reverse ssh Tunnel läuft bei mir problemlos, jedoch lässt sich die NanoStation die ich über den RemotePi per https ansprechen möchte nicht erreichen.
Gruß Basti
Hallo,
sorry für die späte Reaktion. Ich bin auf einen neuen Mailserver umgezogen und hatte vergessen, mein WordPress entsprechend umzustellen.
Das mit https:// ist immer etwas kniffelig, zumal die Browser auch immer weniger tolerant bzgl. Zertifikaten sind. Wenn du vom Browser eine Zertifikatwarnung bekommst, bis du aber schon auf dem richtigen Weg:
Zitat: Websites bestätigen ihre Identität mittels Zertifikaten. Firefox vertraut dieser Website nicht, weil das von der Website verwendete Zertifikat nicht für 192.168.178.45:9547 gilt. Das Zertifikat gilt nur für folgende Namen: fritz.box, http://www.fritz.box, myfritz.box, http://www.myfritz.box, fritz.nas, http://www.fritz.nas
Versuche es doch erst einmal mit normalem http bevor du mit https weitermachst. Die SSH Verbindung zwischen Gateway und Remote ist ja sowieso schon verschlüsselt.Wenn das klappt, kannst du dich mit https durchhangeln.
https Zielport ist immer die 443.
Das Tunnelkommando sieht dann so aus:
//usr/bin/autossh fN -R 9547:ip.von.deinem.Gerät:443 pi@www.deineDynDNS.de
Beim Aufruf musst du natürlich ein https:// vor die IP Adresse des Gateways schreiben. Also z.B. https://192.168.178.45:9547
Gruß Chris