Ich hatte soeben das Problem, dass ich gern auf einen Dienst zugegriffen hätte, der auf einer entfernten Maschine auf Port 443 läuft. Außerhalb des eigenen Netzes, also für IP-Adressen, die nicht im gleichen Netzssegment liegen, wurde der Zugriff auf Port 443 aber gesperrt. Über eine SSH-Verbindung am Terminal mit Lynx zu arbeiten fiel auch aus, da der Webservice massiven Einsatz von JavaScript macht und ohne dieses quasi nicht benutzbar ist.
Also musste eine Möglichkeit her, trotz der Einschränkung auf diesen Service zuzugreifen. Eine lokale Portweiterleitung mittels SSH erbrachte den gewünschten Effekt. Hierfür wird eine Art Datenumleitung eingerichtet, mit deren Hilfe man die Anfrage- und Antwortpakete an den jeweils zuständigen Port umleitet.
https://gist.github.com/481534
Der Befehl ssh sollte bekannt sein. Die Option -L bindet einen lokalen Port an einen Remote-Port, wie auch im Beispiel zu sehen ist. Über [email protected] meldet man sich dann mit gültigen Zugangsdaten an der Maschine an, auf der der Service läuft.
Konkret habe ich in meinem Falle den lokalen Port durch 14500 ersetzt, den Remote-Port durch 443. SSH baut die Verbindung und damit auch den Tunnel auf, et voilà, schon kann man über den Browser mittels
http(s)://localhost:14500
auf den Webservice zugreifen. Die Einschränkung im Zielnetz, dass Port 443 nach außen nicht erreichbar sein darf ist somit umgangen.