ssh -D
kann einen Socken-Port auf einem lokalen Computer einrichten, der den Datenverkehr an die entfernte Stelle und dann an andere Orte weiterleitet.
ssh -L port:host:hostport
Übergeben Sie den Datenverkehr aus Sicht des Remote-Computers an "host: hostport".
ssh -R port:host:hostport
ist das Gegenstück zu ssh -L
, das den Port auf dem Remote-Computer abhört und den Datenverkehr aus Sicht des lokalen Computers an "host: hostport" weiterleitet.
Aber was ist das Gegenstück dazu ssh -D
, dh wie man einen Socken-Port an einem entfernten Rechner öffnet, der den Verkehr zum lokalen und dann zu anderen Orten weiterleitet?
networking
ssh
tunnel
ssh-tunnel
socks
Beere
quelle
quelle
Antworten:
Mit
-D
& haben-L
Sie die Möglichkeit, auf beide Arten zwischen den beiden Maschinen zu kommunizieren.So...
-R
um ein Listening - Port auf dem entfernten Rechner auf dem lokalen Computer des sshd darauf zu erstellen.-D
auf dem Remote-Computer den oben erstellten Port.Ich "denke", dass das Ausfüllen des folgenden Formulars funktionieren wird ...
ssh remotehost -R remoteport:localhost:localport "ssh -D 9050 localhost -p remoteport"
'
remotehost
', 'remoteport
' & 'localport
' im obigen müssen geändert werden. Ein Socken-Proxy wird auf 9050 gebildet.quelle
Kann mit diesem Snippet in ~ / .ssh / config transparent erreicht werden:
Einzelheiten
Wir wollen einen umgekehrten DynamicForward. Dies wird mit zwei ssh-Befehlen erreicht:
ssh -D 3128 localhost
ssh -R 3128:localhost:3128 target
Auf diese Weise verfügt das Ziel über einen SOCKS-Tunnel zum SSH-Client.
Was ich getan habe, ist, die klassische Art der Verkettung von ssh zu verwenden, um ein entferntes Ziel über zwischengeschaltete Hosts zu erreichen, sodass die Erstellung des SOCKS-Tunnels während der Anmeldung am Ziel transparent gehandhabt wird. Der erste ProxyCommand + nc-Trick ist obligatorisch, da -W ClearAllForwardings impliziert.
quelle
Es gibt keine Möglichkeit, einen Reverse-Socks-Tunnel mit OpenSSH bereitzustellen. Sie müssen daher den Befehl ssh ausführen, um den Socks-Proxy auf dem "entfernten" Computer bereitzustellen.
Wenn das entfernte Gerät nicht in der lokalen Maschine kann SSH, erstellen eine erste SSH - Verbindung von der lokalen zur fern , die nach vorn Port 22 auf zB 2222. Dann wird die entfernte Maschine kann in der lokalen Maschine an Port 2222 SSH.
quelle
seit OpenSSH 7.6
ssh (1): Unterstützung für Reverse Dynamic Forwarding hinzufügen. In diesem Modus fungiert ssh als SOCKS4 / 5-Proxy und leitet Verbindungen zu Zielen weiter, die vom Remote-SOCKS-Client angefordert werden. Dieser Modus wird mit erweiterter Syntax für die Optionen -R und RemoteForward angefordert und erfordert keine Aktualisierung des Servers, da er ausschließlich auf dem Client implementiert ist.
https://www.openssh.com/txt/release-7.6
quelle
ssh -R 127.0.0.3:1080 remote
) auswählen können. Sie können derzeit einen Reverse-SOCKS-Proxy nur an einen Port binden .