Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Normalfall

Folgenden Befehl ausführen:

Code Block
titlelocal port forwarding
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
titlelocal port forwarding mit abweichendem ssh-Port
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
titlelocal port forwarding mit Vorgabe ipv4
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
titlelocal port forwarding ohne dass auf dem Zielserver eine shell gestartet wird
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
titleremote port forwarding
ssh -R 3006:localhost:3306 -l USERID ZIELSERVER