У меня есть экземпляр 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
или вы можете использовать сетевой интерфейс частный Айпи адрес.
curl --interface 10.0.0.1
curl --interface 10.0.0.2
Вы не можете использовать общественный Айпи адрес.
Обновление из комментариев:
Исходный плакат использовал Squid для прокси-запросов. Эта статья помогла пользователю настроить squid на прокси в соответствии с его требованиями.
Настроить squid на использование нескольких исходящих IP-адресов