cURL указывает исходящий IP-адрес - Windows

Я настроил свой экземпляр 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) ?

Заранее благодарим!

1
задан 4 September 2019 в 17:35
1 ответ

Похоже, это может быть проблема с маршрутизацией. Можете ли вы пинговать или traceroute по адресу? Проверьте печать маршрута или Get-NetRoute в PowerShell, чтобы понять, правильный ли установлен шлюз - третий столбец в каждом столбце сообщит вам, куда идет запрос для данного адрес (вы, вероятно, захотите найти NextHop , соответствующий DestinationPrefix 0.0.0.0/0 ).

Вам нужно искать проблемы в том, как устройство направляет ваши запросить разные IP-адреса для разных интерфейсов, чтобы решить проблему.

1
ответ дан 3 December 2019 в 23:00

Теги

Похожие вопросы