Verwenden von ssh zum Weiterleiten der Localhost-Ports eines Remotecomputers

1

Ich versuche, mysql-workbenchauf meinem lokalen Computer zu laufen , der über mit einem Remote-Computer verbunden ist ssh. Wenn der Remote-Computer Port 3306 abhört, ist dies trivial:

ssh -L 1234:localhost:3306 [email protected]

Dies würde es mir ermöglichen, auf etwas zu zeigen mysql-workbench, localhost:1234und der gesamte Datenverkehr würde auf etwas weitergeleitet example.com:3306.

Die Datenbank auf example.comhört jedoch nur zu localhost:3306. Gibt es eine Möglichkeit, example.com:localhost:3306über einen Port eine Weiterleitung zu meinem Computer durchzuführen? Ich habe beide ncund ncatauf dem lokalen Rechner, so dass ich denke , dass es möglich sein soll , ein provisorisches Proxy einzurichten, ich einfach nicht recht wissen , wie.

Barton Chittenden
quelle

Antworten:

0

Ihre Erklärung ist etwas seltsam und Ihr Beispiel sollte immer noch funktionieren, denn Sie sagen: "Wenn der Datenverkehr auf meinem lokalen Computer auf TCP-Port 1234 gerichtet ist, senden Sie ihn durch diesen Tunnel und lassen Sie den Computer am anderen Ende ihn an irgendetwas senden Die IP-Adresse wird in localhost auf dem Remotecomputer aufgelöst und an den Port 3306 DIESES Computers gesendet. Wenn Sie Folgendes eingegeben haben: remote2.example.com: Der Computer, an den Sie senden möchten, sendet die Pakete an den von remote2.example.com aufgelösten Server Stellen Sie sich zum Beispiel vor, ich habe drei Shells und einen lokalen Computer und einen Remote-Computer:

[@local  1]$ ssh -L8888:localhost:7777 remote
[@remote 2]$ nc -l -s 127.0.0.1 -p 7777
[@local  3]$ echo 'Hello World!' | nc localhost 8888

Wird die @local 1Shell-Ausgabe "Hallo Welt!" Machen . Vielleicht hört der Remote-Dienst nicht wirklich auf den lokalen Host, auf den sich der Remote-Computer auflöst?

Anon
quelle
nc -l -s 127.0.0.1 -p 7777beschwerte sich darüber nc: cannot use -s and -l.
Barton Chittenden
Ich nehme an, Sie arbeiten mit einer Red Hat-ähnlichen Distribution, die Netcat-traditional nicht verwendet (vielleicht verwenden Sie nmap-ncat). Wenn Sie sich die Hilfe ansehen, werden Sie wahrscheinlich sehen -s, --source addr Specify source address to use (doesn't affect -l). Sie können es nc -l 127.0.0.1 7777stattdessen versuchen .
Anon
0

Aus Ihrer Beschreibung ist nicht ersichtlich, was falsch ist und was Sie tun möchten. Sobald Sie über einen "trivialen" SSH-Tunnel eine Verbindung zu Ihrem Server herstellen können, können Sie eine Verbindung zur Loopback-Schnittstelle des Remote-Computers herstellen, der localhost ist: 3306. DB-Server überwachen standardmäßig die Loopback-Schnittstelle. Versuchen Sie, eine Verbindung zu einem Remote-Computer mit expliziter Loopback-IP-Adresse herzustellen:

ssh -L 127.0.0.1:1234:127.0.0.1:3306 [email protected]

Es sollte ohne Notwendigkeit in Netcat und so weiter funktionieren. Wenn dies nicht der Fall ist, liegt ein Fehler in Ihrer Datenbankserverkonfiguration vor.

Oleg Bolden
quelle