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