3台のマシン間のポート転送

3台のマシン間のポート転送

チェーンで接続された 3 台のマシン (A、B、C) があります。

 A-->B-->C

A は私のマシン、B はサーバー、C はいくつかのサービスと Web サーバーがある別のマシンです。いくつかの問題により、A から C の Web サーバー (ポート 80) にアクセスする必要があります。SSH を使用して A から B にログインし、次に B から C にログインできますが、現時点ではコンソールが不足しています。Web ブラウザーが必要ですが、オプション付きの ssh は-X機能しませんでした (Firefox を起動すると dbus に問題が発生する)。

クラシック コマンドを使用して B でポート転送を行い、SSH 用に 22 ポートを転送します。

ssh -L 2222:localhostB:22 user@ipC

しかし、同じ方法を使用してポート 80 を転送しても機能しませんでした。

ssh -L 8888:localhostB:80 user@ipC

これを機能させるには他の転送方法があることは知っていますが、その方法と内容がわかりません。

次のようなものが必要です:

A --> B (frd from B:8888 to C:80) --> C (port 80 web server)

つまり、ipB:8888 と入力すると、C:80 に転送されます。

何をしなければならないかを説明してくれる助け、またはコマンド付きのスクリプトがあればありがたいです。あるブログで、ssh -L転送を 2 回実行する必要があることに気付きましたが、その理由がわかりません。

答え1

あなたは正しい方向に進んでいます。

Aの場合:

ssh -L 8888:ipC:80 user@ipB -N

CのWebサーバーをAのlocalhost:8888経由でアクセスできるようにします。

OP のリクエストにより、もう少し詳細を記載します。

ご質問から、A 上の C の Web サーバーにアクセスしたいとお考えだと推測します (A 上に Web ブラウザーを備えた GUI 環境があると思われます)。

Cに直接アクセスすることはできません(何らかの理由で)が、Bにアクセスでき、BはCにアクセスできます。そこで、AとBの間にトンネルを作成し、Bにトンネルの端をCのWebサーバーに接続するように依頼します。

関連情報