sshを使用してリモートマシンのlocalhostポートを転送する


1

mysql-workbench介してリモートマシンに接続されたローカルマシンで実行しようとしていsshます。リモートマシンがポート3306でリッスンしている場合、これは簡単です。

ssh -L 1234:localhost:3306 user@example.com

これは私が指し示すのmysql-workbenchを許容してlocalhost:1234、すべてのトラフィックはに発送されるでしょうexample.com:3306

example.comただし、データベースはでリッスンしているだけlocalhost:3306です。example.com:localhost:3306ポートを介してマシンに戻す方法はありますか?私は両方持っているncncat私はしていない、ローカルマシン上で利用可能にするので、私はその場しのぎのプロキシを設定することは可能であるべきだと思うかなり方法を知っています。

回答:


0

何を言っていることですので、あなたの説明は少し奇妙であり、あなたの例では、まだ動作するはずです:「私のローカルマシン上のトラフィックがTCPポート1234に向けられたときに、このトンネルを介して送信し、もう一方の端に機械を作る何に送りますIPアドレスは、リモートマシン上の localhost 解決され、そのマシンのポート3306に送信されます。たとえば、3つのシェルがあり、ローカルマシンとリモートマシンがあるとします。

[@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

ようになります@local 1シェル出力に「Hello World!」。おそらく、リモートサービスは、リモートマシン上のlocalhostの解決先を実際にリッスンしていないのでしょうか?


nc -l -s 127.0.0.1 -p 7777と文句を言いましたnc: cannot use -s and -l
バートン

netcat-traditionalを使用していない(おそらくnmap-ncatを使用している)ディストリビューションのようなRed Hatを使用していると思います。ヘルプを見ればわかるでしょう-s, --source addr Specify source address to use (doesn't affect -l)nc -l 127.0.0.1 7777代わりに試すことができます。
アノン

0

説明から、何が間違っているのか、何をしたいのかが明確ではありません。「簡単な」sshトンネルを介してサーバーに接続できたら、localhost:3306であるリモートマシンのループバックインターフェイスに接続できます。DBサーバーは、デフォルトでループバックインターフェイスをリッスンしています。明示的なループバックIPアドレスでリモートマシンに接続してみてください。

ssh -L 127.0.0.1:1234:127.0.0.1:3306 user@example.com

netcatなどで必要なく動作するはずです。そうでない場合は、データベースサーバーの構成に問題があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.