さまざまなインターフェイスを介したポート転送

さまざまなインターフェイスを介したポート転送

公的にアクセス可能なIPアドレスを持つリモートサーバーがあります。このサーバーのポートでは、要素はさまざまなポートを介してWeb上でホストされています。したがって、同じネットワークに接続されている別のPCで[server_ip]:[port]に移動して、サーバープロセッサAでホストされているアプリケーションを表示できます。

私が直面している問題は、サーバーにプロセッサAを介してのみアクセスできる2番目のプロセッサ(B)があることです。たとえば、サーバー・プロセッサー A に接続し、プロセッサー B に SSH で接続できます。しかし、プロセッサBへの公共接続はない。私の目標は、プロセッサBのアプリケーションの1つをホストしながら、外部からその「Webインターフェース」へのアクセスを許可することです。

したがって、プロセッサBでホストされているWebページをロードしようとするフローチャートは、プロセッサAを介してルーティングする必要があります。

PC リクエスト Web ページ -> サーバープロセッサ A -> サーバープロセッサ B

SSHトンネリングを介してこれを実行しようとしましたが、うまく機能しないようです。両方のプロセッサのIPアドレスはそれぞれのインターフェイスにあるように見えるので、サーバープロセッサAが特定のレポートに対する要求をプロセッサBに転送する必要があることを知ることができるようにする必要があるようです。

可能ですか?

答え1

これは単純なポート転送の例のように見えます。 「プロセッサ」が何を意味していても、次のことを試すことができます。

hostB$ ssh -R8080:127.0.0.1:80 hostA

これはあなたの説明に従って調整できるいくつかの仮定を作成します。これまでに私たちが持っているものは次のとおりです。

  1. hostB$ホストBのCLIからコマンドを開始します。 (Aでも起動できますが、コマンドは少し異なります。)
  2. ssh安全なエンクロージャを使用してください。
  3. -R8080:127.0.0.1:80に向かってトンネルのリモートエンドであるポート8080は、それをローカルエンドである127.0.0.1ポート80に送信します。
  4. hostAホストAのDNS名。 IPアドレスがわかっている場合は、直接使用することもできます。

Webページ呼び出しを実行するクライアントは正しいポートを指定する必要があります。:portたとえば、アドレスの後にこれを実行できます。http://192.168.0.99:8080

何らかの理由ですべての呼び出しがポート80に存在し、一部の呼び出しがAで処理され、他の呼び出しがBで処理される必要がある場合は、Aでいくつかの書き換えルールまたはプロキシが必要です。

答え2

説明する操作は、ApacheのHTTPDやNGINXなど、ほとんどのHTTPサーバーを使用して設定できるリバースプロキシを使用して実行できます。 PC Aにリバースプロキシをインストールして設定できます。

https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html

関連情報