sshトンネリングポート転送


3

A、B、Cの3台のコンピューターがあります。Aは作業中のコンピューター、Cはアクセスしたいリモートコンピューターです。ただし、CにはBを介してのみアクセスできます。Bのみがsshサーバーを持ち、Aのみがsshクライアントを持ちます。

Bを介してC(ポート80)に接続できるようにするには、どのコマンドを使用しますか(できればA上)。たとえば、Bはすべての着信ポート12345をC:80に転送する必要があります。

これはよくある質問であり、グーグルでたくさんのコマンドを見つけましたが、うまくいかないようです。

設定が完了したら、Aでlocalhost:5678を使用するだけで、B:1234に接続してからC:80に転送します。

ありがとう。

回答:


1

sshdデーモンが他のマシンへのポート転送を禁止するように設定されているか、ポート転送をまったく禁止している可能性があります。とにかく、ポート80でAアクセスするために発行する正しいコマンドCは次のとおりです。

ssh -L localhost:5678:<ip-or-name-of-C>:80 <ip-or-name-of-B>

後にsshセッションが確立されますがローカルホストへの接続:80:5678は、Cに接続して取得します。ホストA:5678へのインバウンド接続をC:80に転送する場合localhost:は、上記のコマンドから削除します。

他のホストへのポート転送がで無効になっているB場合、ここで説明されているように、連鎖を試すことができます。


これです、ありがとう。ただし、Bのプロンプトが表示されます。これを回避するには、-nNを追加する必要がありますか?
Car981

これ-Nは、リモートシェルを開始しないのに十分です。sshをバックグラウンドに入れたい場合は、はい、-nスイッチを追加します
Serge
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.