複数のポートを使用したSSHリモートポート転送

複数のポートを使用したSSHリモートポート転送

私はSSHポートフォワーディングを使用している人やアイデアがある人のために(公共アドレスを持つ)SSHサーバーを介して私のPCからリモートコンピュータ(パブリックアドレスを持たないカメラ)へのリモートトンネルを作成しました。

目的は、SSHリモートポート転送を介してカメラへのアクセスを一般に転送することです。

マイコンピュータで実行するコマンドの形式は次のとおりです。

  ssh -R sshServer_port:destination_address:destination_port sshServer_address

例:

  ssh -R 3000:192.198.1.210:80 [email protected]

sshServerでは、localhost:3000を介してリモートシステムにアクセスできます。

その後、次のようにして一般的にアクセスできるようにtcpproxyを設定しました。

tcpproxy -lhost 0.0.0.0:8080 -rhost localhost:3000

これにより、すべてのネットワークの誰でも52.14.9.210:8080と入力してカメラインターフェイスにアクセスできます。

私が望むのは、2つのリモートシステムポート(httpの場合は80、ライブストリーミングの場合は8000)でリッスンするトンネルを作成することです。コマンドの形式は次のとおりです。

ssh -R sshServer_port:destination_address:destination_port1 -R sshServer_port:destination_address:destination_port2 sshServer_address

例:

ssh -R 3000:192.168.1.210:80 -R 3000:192.168.1.210:8000 [email protected]

コマンドを実行しようとしましたが、次のエラーが発生しました。警告:ポート3000でリッスンするリモートポート転送に失敗しました。

この問題を解決する方法を知っていますか?

ベストアンサー1

必要なのは、2つのリモートコンピュータポートを受信する1つのトンネルを作成するのではなく、同じリモートポートで受信する2つのトンネルを望むことです。

それは不可能です。 SSHは、着信接続がどのポートに転送されるべきかをどのように知ることができますか?

プロトコルを区別するためのいくつかの解決策がありますが、普遍的な解決策はありません。 httpトラフィックにポート80を使用している場合は、リバースプロキシを設定できますが、両方の宛先に2つの異なるポートを使用する方がはるかに簡単です。

編集する

-gあなたのコメントによれば、他のホストがトンネルに接続できるようにするSSHオプションがありません。

おすすめ記事