誰かがこの構成を手伝ってくれることを願っています。 LinuxボックスがパブリックIPのポート転送を行うルーターとして機能しているという作業セットアップがすでにあります。これらはすべてパブリックIPです。
Host_x-パブリックIPを持つ任意のホストにすることができます。 (例:x.x.x.x)
MY_LINUX-パブリックIPのポート転送を行うだけのIPtablesを使用します。 (固定IP、例:2.2.2.2)
SERVER-パブリックIPアドレスを持つWebサーバー。 (固定IP、例3.3.3.3)
ポート-(TCPポート= 80)
MY_LINUXの設定は次のとおりです。
iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 --dport 80 -j DNAT --to-destination 3.3.3.3:80 iptables -t nat -A POSTROUTING -p tcp -d 3.3.3.3 --dport 80-jマスカレード
上記の構成は機能します。 Host_xがブラウザで2.2.2.2と入力すると、3.3.3.3からWebページを取得します。
ここで私が抱えている唯一の問題は、宛先SERVER(3.3.3.3)がMY_LINUX(2.2.2.2)からの要求を認識していることです。私が見たいのは、要求しているHost_x(x.x.x.x)の元のIPです。
何か提案をいただければ幸いです、ありがとうございます。
これはレイヤー3レベルでは不可能だと思います。 Host_xは、残りのパケットが接続MY_LINUXを開始したホストから来ることを期待しています。 SERVERが突然TCPハンドシェイクと応答の途中に入ると、Host_xはそれらのパケットを無視します。
Host_xとSERVERは直接接続されているため、このルーティングスキームをアプリケーション層に移動し、HTTPリダイレクトを実装する方がよいと思います。次に、Host_xはエンドポイントへの接続を直接開きます。
Webサーバー(またはそのゲートウェイ)にアクセスできる場合にも、これを行うことができます。私の頭に浮かぶ唯一の解決策は、ルーターとWebサーバー間のトンネルです。その後、Webサーバー(ゲートウェイ)は、宛先アドレスを調整することなく、すべての応答パケットをルーターに送信できます。それがあなたのためのオプションであるならば、私は詳細を見るつもりです。