web-dev-qa-db-ja.com

外部IPへのリクエストをローカルホストにリダイレクト(サーバーをエミュレート)

サーバー(ハードコードされたIP)を呼び出すアプリケーション(ソースコードなし)を取得し、開始する前に回答を期待しています(一種のログイン)。

サーバーが半分の時間ダウンしているので、公式サーバーの動作をエミュレートするダミーサーバーを作成します。

私の問題:

トラフィックをローカルマシンにリダイレクトするにはどうすればよいですか?

IP w.x.y.zに送信されたすべての要求がlocalhostに再ルーティングされるようにしたい(私のダミーサーバーが実行されている場合)

詳細:

  • 私のダミーサーバーはApache/phpソリューションです。
  • 16進エディタを使用してアプリケーションのハードコードされたIPを編集しようとしましたが、アプリケーションを起動すると一部のチェックサムが失敗します。
  • アプリケーションでIPがハードコードされているため、hostsファイルを使用できません。
  • Win XPを実行しています。

関連: Windows Server 2008でトラフィックをあるIPから別のIPにリダイレクトする方法

12
Loda

これは完全なハックになりますが、問題のサーバーのIPをローカルインターフェイスの追加IPとして割り当ててみることができます。手順 here

8
Robert Swisher

さて、あなたは以下を試すことができます:

次のように、そのIPアドレスに特定のルートを設定します。これにより、ダミーサーバーをゲートウェイとして使用します。

route add -Host w.x.y.z/32 gw dummy-server-ip

このためには、ネットワークのメインルーターにアクセスするか、リクエストを送信するマシンでアクセスする必要があります。これにより、TCPパケットとw.x.y.z IPアドレスのパケットがダミーサーバーのMACアドレスに効果的に送信されます。そのため、ダミーサーバーがパケットの処理方法を認識していることを確認する必要があります。

次に、w.x.y.z IPアドレスをセカンダリアドレスとしてダミーサーバーに追加します。
最後にダミーサーバーのApache構成を更新して、w.x.y.zアドレスでもリッスンするようにし、ダミーサーバーの仮想ホストがIPアドレスとドメイン名の両方の着信要求を受け入れることを確認します。

これは、要求側のマシンとダミーサーバーの間に他のルーターがない場合にのみ機能することに注意してください。ファイアウォールが含まれている場合は、それらも更新する必要があります。

2
wolfgangsz

あなたはおそらくiptablesと一緒に何かを強打することができます。これは私がかつて使用したものですが、あなたに足元を与えるためにもうやっていません:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 172.16.25.202 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to 172.16.27.59:8025
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT

注意:私はずっと前にこれをしました、そこに間違いがあるかもしれません

問題となる可能性があるのは、それがインターフェイスに固有であるということだけです。 eth0はインバウンド部分のみにあると思うので、ターゲットとしてloインターフェース(127.0.0.1)でIPを使用してもまだ機能する可能性があります...

1
jj33