, у меня есть экземпляр EC2 с несколькими назначенными ему IP-адресами. Я использую IP-адреса для разных сайтов на одном сервере, похоже, что экземпляр EC2 использует один и тот же IP-адрес для исходящего трафика.
Например, когда я использую curl для исследования своего IP-адреса с помощью прокси, он дает мне общедоступный адрес, а не тот Я использовал в качестве прокси.
curl -x 52.4.95.169:3128 https://api.ipify.org/ # 52.4.95.169 is a an elastic IP assigned to the instance
34.12.45.235 # This is the response, the primary instance IP
Это, по сути, противоречит цели использования эластичных IP-адресов для меня, по соображениям безопасности я не могу никому сообщить, что сайт A и сайт B на одном сервере.
Есть ли способ использовать разные IP-адреса для исходящих запросов или я должен создать новый экземпляр для каждого сайта?
Всякий раз, когда устанавливается исходящее соединение, если в явном виде не сказано об открытии соединения на определенном сетевом интерфейсе, оно будет открыто на интерфейсе "по умолчанию".
curl -x
- это не команда, которую можно использовать для указания сетевого интерфейса. Команда -x
указывает прокси для туннелирования соединения через.
В вашем примере curl -x
, ваше соединение проксируется через ваш собственный экземпляр EC2, но всё это на интерфейсе "по умолчанию".
Поэтому вы хотите использовать параметр --interface
вместо -x
. Это говорит curl об открытии исходящего соединения на этом интерфейсе, а не на интерфейсе по умолчанию.
Вы можете использовать имя сетевого интерфейса:
curl --interface eth0
curl --interface eth1
или IP-адрес сетевого интерфейса private.
curl -интерфейс 10.0.0.1
curl -интерфейс 10.0.0.2
Вы не можете использовать публичный IP-адрес.
Обновление из комментариев:
Первоначальный плакат использовал Squid для прокси-запросов. Эта статья помогла пользователю настроить Squid на прокси в соответствии с его требованиями.
Настройка Squid на использование нескольких исходящих IP-адресов