Table of Contents |
---|
Normalfall
Folgenden Befehl ausführen:
Code Block | ||
---|---|---|
| ||
ssh -L 3006:localhost:3306 -l USERID ZIELSERVER |
...
Also localhost:3006 ==> ZIELSERVER localhost:3306 (Die Angabe localhost:3306 ist hierbei aus Sicht des ZIELSERVERs zu betrachten)
Abweichender ssh-Port
Ist am Zielserver der ssh-Port nicht Standard (Port 22) sondern abweichend z.B. 42 so sieht das Beispiel wie folgt aus:
Code Block | ||
---|---|---|
| ||
ssh -p 42 -L 3006:localhost:3306 -l USERID ZIELSERVER |
Sonderfall ipv4 oder ipv6 ?
Um zu gewährleisten, dass zwingend ein bestimmtes Netzwerkprotokoll verwendet wird kann man mit den Optionen -4 = ipv4 oder -6 = ipv6 ein Protokoll vorgeben.
Je nach Konfiguration des Systems kann es sonst vorkommen, dass z.B. ein ipv6-Port versucht wird obwol der gewünschte Port nur ipv4 anbietet.
Code Block | ||
---|---|---|
| ||
ssh -4 -L 3006:localhost:3306 |
...
-l USERID ZIELSERVER |
Temporärer ssh-Tunnel innerhalb eines shell-Scripts
Aufbau des Tunnels im Hintergrund, z.B. in einem Shell-Script.
Durch den Parameter -fN :
Code Block | ||
---|---|---|
| ||
ssh -fN -L 3006:localhost:3306 -l USERID ZIELSERVER |
Remote Port Forwarding
Das Ganze kann auch anders herum funktionieren.
Anwendungsfall wäre, man versucht z.B. von einem lokalen System einem entfernten Server einen Port anzubieten.
Dieser Fall ist immer dann gegeben wenn man zuhause sitzt und der lokale Rechner nicht aus dem Internet erreicht werden kann.
Hier können die o.g. Beispiel 1:1 übernommen werden, wobei der Parameter "-L" in diesem Fall gegen "-R" auszutauschen ist.
Für die o.g. Beispiel würde das bedeuten, dass der Port 3006 auf dem Server mit meinem lokalen Port 3306 verbunden wird.
Code Block | ||
---|---|---|
| ||
ssh -R 3006:localhost:3306 -l USERID ZIELSERVER |