私は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オプションがありません。