Я настроил свой экземпляр Windows AWS для использования двух IP-адресов и хотел бы иметь возможность выбирать, какой из этих двух IP-адресов используется для HTTP-запроса GET с использованием curl (pycurl).
Я хочу, чтобы серверной стороне казалось, что есть два отдельных клиента - почти как одна машина, использующая себя в качестве прокси.
Я настроил свой экземпляр на использование 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
Может ли кто-нибудь пролить свет на то, почему это соединение может не работать при использовании второго IP-адреса (и как это можно исправить в Windows)?
Заранее спасибо!
Похоже, это проблема с маршрутизацией, не могли бы вы ping
или traceroute
по адресу? Проверьте route print
или Get-NetRoute
в PowerShell, чтобы понять, установлен ли правильный шлюз - третий столбец в каждом будет сообщать вам, куда идет запрос для данного адреса (вы, вероятно, захотите найти NextHop
соответствующий DestinationPrefix
0.0.0.0/0
).
Вам нужно искать проблемы в том, как устройство направляет ваш запрос на разные IP-адреса для разных интерфейсов, чтобы решить эту проблему.