Nerdkram

How to ssh-tunnel

Problem:

Firewall sperrt alle Ports bis auf Port 22 (ssh funktioniert).

Inernetradio läuft auf Port 8000 eines hosts (wird also von der Firewall blockiert)

Beispiel:

http://5mediaserver.de:8000 bedeutet das der Stream auf Port 8000 läuft

Lösung:

ssh tunnel

Howto:

Wir brauchen einen ssh Server (mein.ssh.server) außerhalb der Firewall, auf dem alle Ports zugänglich sind.

Auf dem lokalen Rechner, der von der Firewall blockiert wird, geben wir ein:

ssh -f benutzer@mein.ssh.server -L 3000:5mediaserver.de:8000 -N

-f schickt den Befehl in den Hintergund

dann kommt der Benutzername und Server auf den man sich zum tunneln einloggt.

-L sorgt für den Tunnel. Port 3000 am lokalen Rechner wird weitergeleitet an Port 8000 auf dem host 5mediaserver.de, den man vorher nicht erreichen konnte.

Es wird also ein Tunnel zwischen dem Port 8000 von 5mediaserver.de und dem Port 3000 auf meinem lokalen Rechner aufgemacht. Durch die Firewall die ja ssh auf Port 22 durchlässt.

Ergebniss:

Jetzt lässt sich der Stream starten mit

mplayer http://localhost:3000

Was ja getunnelt wird auf http://5mediaserver.de:8000 also die Stream Adresse.

Um also host:8000 zu erreichen muss man nun localhost:3000 aufrufen

Link: http://www.revsys.com/writings/quicktips/ssh-tunnel.html