チェーンで接続された 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サーバーに接続するように依頼します。