In dieser Antwort werde ich ein konkretes Beispiel durchgehen. Sie müssen nur die Hostnamen, Benutzernamen und Kennwörter der Computer durch Ihre ersetzen.
Problemstellung
Angenommen, wir haben die folgende Netzwerktopologie:
our local computer <---> server 1 <---> server 2
Nehmen wir der Vollständigkeit halber an, wir haben die Hostnamen, Benutzernamen und Passwörter der folgenden Computer:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Ziel: Wir wollen einen SOCKS - Proxy einrichten, die auf Port hört 9991
von LocalPC
so dass jedes Mal , wenn eine Verbindung auf LocalPC
von Port initiiert wird 9991
es durchläuft mit.edu
dann hec.edu
.
Anwendungsbeispiel: Verfügthec.edu
über einen HTTP-Server, auf den aus Sicherheitsgründen nur unter http://127.0.0.1:8001 zugegriffen werden kann. Wir möchten in der Lage sein, http://127.0.0.1:8001 zu besuchen, indem wir einen Webbrowser auf öffnen LocalPC
.
Aufbau
In LocalPC
, add in ~/.ssh/config
:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
LocalPC
Führen Sie dann im Terminal von Folgendes aus:
ssh -D9991 HEC
Es fragt Sie nach dem Passwort von bob
on mit.edu
(dh dylan123
) und dann nach dem Passwort von john
on hec.edu
(dh doe456
).
Zu diesem Zeitpunkt wird der SOCKS-Proxy nun auf dem Port 9991
von ausgeführt LocalPC
.
Wenn Sie beispielsweise eine Webseite LocalPC
mit dem SOCKS-Proxy besuchen möchten , können Sie in Firefox Folgendes tun:
Einige Bemerkungen:
- in
~/.ssh/config
, HEC
ist der Verbindungsname: Sie können ihn in einen beliebigen Namen ändern.
- Das
-D9991
sagt ssh
ein SOCKS4 Proxy auf Port einzurichten 9991
.