Was Sie tun möchten, ist ssh VON Ihrem "Linux-Server" ZU etwas außerhalb, wie "my_other_server" oder etwas anderes, zu dem beide Server gelangen können.
Sie würden die ssh-Remote-Portweiterleitung verwenden.
[[email protected]_server]$ ssh -R8022:localhost:22 my_other_server.com
Erläuterung:Verbinden Sie sich mit my_other_server und öffnen Sie dort Port 8022, der auf Port 22 zu mir zurückleitet.
Von my_other_server.com können Sie ssh an localhost auf Port 8022 senden und Ihren Datenverkehr an linux_server huckepack auf dem Tunnel linux_server -> my_other_server [[email protected]_server]$ ssh -p8022 localhost
weiterleiten lassen
Erläuterung:Verbinden Sie sich mit mir selbst auf Port 8022, der an linux_server weitergeleitet wird
Wenn Sie Probleme mit dem Ausfall des anfänglichen linux_server -> my_other_server-Tunnels haben, können Sie ein Skript erstellen, um ihn offen zu halten, die Keepalive-Einstellungen anpassen oder autossh verwenden.
Diese Antwort basiert auf der akzeptierten Antwort, fügt jedoch die Details hinzu, die es mir ermöglicht haben, sie zu erledigen. Ich entschuldige mich für die flüchtige Erklärung, da dies überhaupt nicht mein Fachwissen ist.
Angenommen, Sie haben zwei Computer, A
und B
. Sie möchten ssh
ab A
bis B
, und Sie können keine Portweiterleitung in den mit ihnen verbundenen Routern durchführen.
Wie die akzeptierte Antwort besagt, benötigen Sie einen Server S
dazu:im Computer B
, erlauben Sie ssh
Verbindungen, die von S
kommen; und vom Computer A
, greifen Sie unter S
auf diesen Tunnel zu um B
zu erreichen .
Aber wie bekommt man diesen Server S
? Ich habe serveo
gefunden (Link:https://serveo.net/). Es ist von sehr einfacher Verwendung. Sie müssen nichts installieren oder registrieren und es ist kostenlos. Laut Website sind die folgenden Schritte zu befolgen:
-
Denken Sie an einen Alias für Computer
B
. Beispiel:computer_B_alias
. -
Im Computer
B
, führen Siessh -R computer_B_alias:22:localhost:22 serveo.net
aus . -
Jetzt können Sie auf Computer
B
zugreifen von ComputerA
durch Ausführen des Folgenden im ComputerA
:ssh -J serveo.net [email protected]_B_alias
, wo Sieuser
ersetzen müssen nach dem Namen des Benutzers im ComputerB
.
P.S.:Natürlich machen Sie Punkt 2 automatisch beim Start Ihres Computers B
.
P.S.S.:Bevor Sie dies versuchen, vergewissern Sie sich, dass ssh
ist auf beiden Rechnern installiert. Für Ubuntu sudo apt-get install ssh
würde den Job machen.
Sie können eine Art VPN verwenden, um dies zum Laufen zu bringen, aber Sie müssten einen Server haben, auf den der unzugängliche Server zugreifen kann. Dann können Sie OpenVPN auf dem Server, Ihrem PC und dem Firewall-Server einrichten, aktivieren Sie client-to-client
, und du bist fertig. http://openvpn.net/howto.html