Proxy http запросов на разные IP

Установка, обновление, настройка Linux

Модераторы: Olej, adminn

x-nikolas
Интересующийся
Сообщения: 3
Зарегистрирован: 01 апр 2021, 09:18
Контактная информация:

Proxy http запросов на разные IP

Непрочитанное сообщение x-nikolas » 01 апр 2021, 10:13

Добрый день!
Имеется сервер с Ubuntu 20.04, у сервера 3 белых IP. На сервере запущен сервис, отправляющий http запросы на определённый сайт, условно "example.com".
Задача: перенаправлять http разные запросы от сервиса на "example.com" от разных IP нашего сервера в зависимости от настроенных правил. В качестве прокси-сервера выбран Squid (но это не принципиально).

Пробовал настроить опцию tcp_outgoing_address, но так и не понял, как нужно (и можно ли вообще) это сделать.
В опциях своих http запросов (на стороне сервиса) я могу указать дополнительно :username, :proxyhost и :proxyport. Задумка в том, чтобы Squid делал перераспределение в зависимости от содержимого этих опций.

Прошу подсказать, можно ли так сделать, и, если да, то на что обратить внимание, с чего начать? Уже несколько дней не получается разобраться...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Proxy http запросов на разные IP

Непрочитанное сообщение Olej » 01 апр 2021, 22:33

x-nikolas писал(а):
01 апр 2021, 10:13
Пробовал настроить опцию tcp_outgoing_address, но так и не понял, как нужно (и можно ли вообще) это сделать.
В опциях своих http запросов (на стороне сервиса) я могу указать дополнительно :username, :proxyhost и :proxyport. Задумка в том, чтобы Squid делал перераспределение в зависимости от содержимого этих опций.
Первое что приходит в голову, на вскидку ... как можно понять вашу проблему из очень скудного описания:
- запустите 3 экземпляра лёгких прокси, скорее даже SOCKS5 на разных портах...
- Squid слишком монстр для ваших скромных целей...
- в своих опциях будете указывать proxyhost=127.0.0.1 но разные proxyport

P.S. Посмотрите как это делается в сети TOR (сеть а не браузер), они делают то же самое.
Изучите тему TOR сеть - там есть про прокси SOCKS5 и HTTP (polipo), и про их взаимодействие ... может и просто одного poipo вам будет достаточно...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Proxy http запросов на разные IP

Непрочитанное сообщение Olej » 01 апр 2021, 22:52

Дубликат вашей темы я удалю...

P.S. На форуме сообщения новых пользователей требуют одобрения модератора пока у пользователя не накопится 2 или 3 сообщения, и он перейдёт из категории новых в категорию обычных... Тогда подтверждения будут не нужны.

P.P.S. Это для ограничения от спамеров, которых развелось как собак...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Proxy http запросов на разные IP

Непрочитанное сообщение Olej » 01 апр 2021, 22:58

Olej писал(а):
01 апр 2021, 22:33
- запустите 3 экземпляра лёгких прокси, скорее даже SOCKS5 на разных портах...
В конце концов, вы сами можете написать минимальные SOCKS прокси на разных портах.
Вот я писал для кого-то из заказчиков, но не смог сразу найти (много тут уже понаписано за 12 лет): программирование SOCKS5 обмена.

x-nikolas
Интересующийся
Сообщения: 3
Зарегистрирован: 01 апр 2021, 09:18
Контактная информация:

Re: Proxy http запросов на разные IP

Непрочитанное сообщение x-nikolas » 02 апр 2021, 09:16

Большое спасибо!
Буду пробовать.

x-nikolas
Интересующийся
Сообщения: 3
Зарегистрирован: 01 апр 2021, 09:18
Контактная информация:

Re: Proxy http запросов на разные IP

Непрочитанное сообщение x-nikolas » 09 апр 2021, 13:33

Свою задачу я в итоге решил при помощи Squid. Может кому пригодится:

# Чтобы не попасть в списки бесплатных прокси, разрешаем http_access только с localhost:
http_access allow localhost
http_access deny all

# Squid по умолчанию слушает порт 3128. Добавляем к нему ещё один (данный пример для двух белых IP):
http_port 3128
http_port 3129

# Создаём два списка контроля доступа с номерами портов в качестве элементов:
acl req1 myport 3128
acl req2 myport 3129

# Перенаправляем с каждого порта на разный IP.
tcp_outgoing_address xxx.yyy.zzz.nnn req1
tcp_outgoing_address xxx.yyy.zzz.mmm req2

Для описанных выше целей решение рабочее.

Хотелось, конечно, организовать работу через один порт 3128 и перенаправлять запросы по имени пользователя и паролю, что сходу что-то не вышло. Делал примерно так:

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
(задал два юзера и два пароля)

acl login1 proxy_auth user1
acl login2 proxy_auth user2

tcp_outgoing_address xxx.yyy.zzz.nnn login1
tcp_outgoing_address xxx.yyy.zzz.mmm login1

В итоге - просто любые запросы проходили насквозь. И с паролем, и без пароля...

Ответить

Вернуться в «Администрирование Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и 7 гостей