サーバーの限られたネットワークのためのリバースSSHトンネルを確立しましたaws
。つまり、アクセスするためにサーバーにSSHを介して接続aws
し、そこからいくつかのカスタムポートを介して制限されたネットワーク上のコンピュータにアクセスできます。
この制限されたネットワークには、Webブラウザを介して設定できるデバイスがあります。
コンピュータssh -R 8080:deviceIP:80 user@aws
に転送するのと同じことができると確信していますが、まだアクセスできません(リモートXを介している場合を除いて非常に遅いです)。ホームブラウザにaws
どのようにパイプしますか?deviceIP:80
aws
上記のsshコマンドを試してから自宅のコンピュータのブラウザを次に指定しましたが、aws:8080
ページが読み込まれませんでした...
答え1
SSHトンネルは安全でないネットワークを拡張するのに役立ち、異なるネットワーク上の2つのエンドポイントを接続するときにエンドツーエンドの暗号化を提供します。
私が知っている限り(コメントありがとうございます)あなたが持っているものは次のとおりです。
localhost-A:yours
localhost
、ローカルネットワーク(おそらくファイアウォール/ NATの背後にある)パブリックアクセス可能なホストB:
aws
サーバーパブリックアクセスできないホスト-C:制限付きリモートネットワーク(ファイアウォール/ NATの背後にある可能性があります)
deviceIP
パブリックアクセスできないホスト-D:ポートでリッスンし、リモートで制限80
されたネットワーク上の呼び出し側ホスト
ホストAをホストDに接続し、ブラウザがポートを介してホストにアクセスできるようにするには、次の手順を実行する80
必要があります。
ホストAからホストBにトンネリングします。つまり、次のようになります。
ホストAがポートでリッスンすることを許可する
8080
トンネルを介してこのポートからトラフィックを送信します。
ホストB(
aws
)からトンネルのトラフィックをローカル(ホストBなど)ポートにリダイレクトします15872
(あなたの意見から取得しました。利用可能なポートを選択できます。すべてのポートで同じように使用します。ポートは次のとおりです) ))コマンド)
# Execute on host-A $ ssh -L 8080:localhost:15872 user@host-B
ホスト C からホスト B にトンネリングします。つまり、次のようになります。
ホストBがポートでリッスンすることを許可する
15872
トンネルを介してこのポートからトラフィックを送信します。
ホストC(Linuxサーバー)からそのトラフィックを
80
ホストDのポートにリダイレクトします。
# Execute on host-C $ ssh -R *:15872:host-D:80 user@host-B
したがって、ホストAへのポートの要求は、ホスト8080
Bにトンネリングされ、15872
同じホストBのポートにリダイレクトされ、ホストCにトンネリングされ、ホストCから80
ホストDのポートにリダイレクトされます。
答え2
Webサーバーをブラウザにリダイレクトせずに、ブラウザからWebサーバーにリクエストをリダイレクトします。必要なリバースプロキシではなく、フォワードプロキシです。
これにより、クライアントポート8080にリスニングソケットが作成され、トンネルを介してポート80ssh
に転送されます。deviceIP
ssh -L 8080:deviceIP:80 user@aws