web-dev-qa-db-ja.com

cURLはアウトバウンドIPを指定します-Windows

2つのIPアドレスを使用するようにWindowsAWSインスタンスを設定しましたが、curl(pycurl)を使用してHTTPGETリクエストに使用する2つのIPのどちらを選択できるようにしたいと思います。

サーバー側には、2つの別々のクライアントがあるように見せたいです。まるで1台のマシンがそれ自体をプロキシとして使用しているようです。

1.1.1.1を静的IPとして使用し、2.2.2.2を追加の(プロキシ)IPアドレスとして使用するようにインスタンスを構成しました。

> curl --interface 1.1.1.1 example.com

は成功しますが、他のIPアドレスで試行するとタイムアウトが発生します。

> curl --interface 2.2.2.2 example.com
curl: (7) Failed to connect to example.com port 80: Timed out

詳細フラグの設定

> curl --interface 2.2.2.2 --verbose example.com
*   Trying 93.184.216.34:80...
* TCP_NODELAY set
* Name '2.2.2.2' family 2 resolved to '2.2.2.2' family 2
* Local port: 0
* connect to 93.184.216.34 port 80 failed: Timed out
* Failed to connect to example.com port 80: Timed out
* Closing connection 0
curl: (7) Failed to connect to example.com port 80: Timed out

2番目のIPを使用するときにこの接続が失敗する理由(およびWindowsでこれを修正する方法)を誰かに教えてもらえますか?

前もって感謝します!

1
Huw Thomas

ルーティングの問題のようですが、アドレスにpingまたはtracerouteできますか?小切手 route printまたはGet-NetRoute PowerShellで、正しいゲートウェイが配置されているかどうかを確認します。それぞれの3番目の列は、特定のアドレスに対するリクエストの送信先を示します(おそらく、に対応するNextHopを探します。 DestinationPrefix0.0.0.0/0)。

問題を解決するには、デバイスがさまざまなインターフェイスのさまざまなIPにリクエストをルーティングする方法の問題を探す必要があります。

1
LTPCGO