no-style

Поднимаем socks5 proxy в докер контейнере

docker-compose + linuxserver + wireguard
Настало время рассказать как очень быстро и просто поднять socks5 ipv4 прокси в докер контейнере. В данной статье рассмотрим сразу 2 разных образа - для amd64 и для arm64 архитектур.


Необходимые требования

Чтобы всё получилось нам понадобится:







В двух словах про socks5 proxy

В последнее время сфера применения прокси заметно увеличилась.

  • Самый распространённый вариант использования прокси анонимность. Прокси может скрыть настоящий ip адрес, к тому же socks5 ещё и умеет делать DNS запросы.
  • Для SEO задач. Парсинг / Автоматизация и т.д.
  • Ещё один вариант применения прокси для усиления безопасности. Например Вы разрешаете в фаерволе доступ к какому то сервису только с ip адреса прокси. И далее раздаёте доступ своим сотрудникам, которые с этим сервисом работают.
  • В ситуациях, когда контент который мы хотим посмотреть недоступен для нашего региона или вообще заблокирован доступ для целой страны.
  • В некоторых случаях прокси помогает улучшить Ping и Delay в играх и / или специальном П.О.
  • Другое...

Кому то будет полезно посмотреть информацию по классификации ip адресов и прокси, перед тем как приступить. И можно начинать.







Поднимаем socks5 proxy для архитектуры amd64 в одну команду

Для архитектуры amd64 мы будем использовать репозиторий olebedev/socks5


Синтаксис команды:

sudo docker run -d --name socks5_amd64 -p 28131:1080 -e PROXY_USER=YOURPROXYLOGIN -e PROXY_PASSWORD=YOURPROXYPASSWORD --restart=unless-stopped olebedev/socks5

--name отвечает за имя контейнера и является необязательным параметром

-p 28131:1080 порт прокси. меняем только тот порт который стоит до двоеточия, то есть 28131 - меняем на любой угодный. 1080 это порт внутри контейнера и его стоит оставить как есть!

PROXY_USER=... желаемый логин прокси.

PROXY_PASSWORD=... желаемый пароль прокси. Советую делать от 20 символов, если не хотите чтобы прокси использовал ещё кто то кроме вас.

--restart=unless-stopped при возникновения какого либо сбоя будет перезагружать контейнер с проксёй до тех пор пока вы сами его не остановите.

Внимательно изучив команду, замените её своими данными в нужных местах и вставляете в терминал. Дальше докер всё сделает сам.

На некоторых хостингах понадобится дополнительно разрешать трафик на выбранный порт. Например на инстансах от оракла, необходимо открыть порт через веб файрвол. То есть открыть порт 28131, если вы его не меняли.







Поднимаем socks5 proxy для архитектуры arm64 в одну команду

Для архитектуры arm64 мы будем использовать репозиторий torquemada163/aarch64-3proxy-scaleway


Синтаксис команды:

sudo docker run -dt --name socks5_aarch64 -e CRED='YOURPROXYLOGIN:CL:YOURPROXYPASSWORD' -p 28130:3128 -p 28131:1080 --restart always torquemada163/aarch64-3proxy-scaleway

--name отвечает за имя контейнера и является необязательным параметром

CRED='YOURPROXYLOGIN:CL:YOURPROXYPASSWORD' логин и пароль прокси. обратите внимание что :CL: нужно оставить как есть и заменить только YOURPROXYLOGIN и YOURPROXYPASSWORD на любые угодные вам. Опять таки делайте их помощнее, если не желаете заниматься благотворительностью.

-p 28130:3128 порт http прокси. меняем только тот порт который стоит до двоеточия. То есть 28130 меняем на любой угодный. 3128 это порт внутри контейнера и его стоит оставить как есть!

-p 28131:1080 порт socks5 прокси. меняем только тот порт который стоит до двоеточия. То есть 28131 меняем на любой угодный. 1080 это порт внутри контейнера и его стоит оставить как есть!

--restart=unless-stopped при возникновения какого либо сбоя будет перезагружать контейнер с проксёй до тех пор пока вы сами его не остановите.

На некоторых хостингах понадобится дополнительно разрешать трафик на выбранный порт. Например на инстансах от оракла, необходимо открыть порт через веб файрвол. То есть открыть порт 28131, если вы его не меняли.







Поднимаем socks5 proxy для архитектур amd64 и arm64 при помощи docker-compose

Кто то любит поднимать контейнеры используя нативный docker, а кому то больше нравится docker-compose. Поэтому рассмотрим вариант поднятия socks5 сразу для amd64 и arm64 архитектур при помощи docker-compose.

Как и в предыдущих статьях про докер контейнеры мы будем придерживаться правила - хранить все контейнеры в одном месте. Создаём директорию под ipv4 socks5 proxy

sudo mkdir -p /app/proxy/ipv4-socks5-proxy

Меняем владельца папки с рута на нашего пользователя

sudo chown -R $USER:$USER /app/proxy/ipv4-socks5-proxy

Переходим в директорию с Socks5 proxy

cd /app/proxy/ipv4-socks5-proxy

Создаём фаил docker-compose.yml

nano docker-compose.yml

И заполняем его данными в зависимости от архитектуры процессора.

Для архитектуры amd64 берём такую заготовку
Для архитектуры arm64 такую


После этого правим настройки под себя и стартуем контейнер

sudo docker-compose up -d






Проверяем работу прокси

Проверить работу прокси можно выбрав в браузере соответствующий пункт. В разных браузерах он называется по разному, поэтому я опишу на примере плагина FoxyProxy standart для Firefox

Устанавливаем плагин и идём в его настройки

socks5 proxy foxyproxy

    Добавляем новую прокси
  • Название или описание: Любое
  • Цвет: Любой, бывает полезно
  • Включено: On
  • Тип прокси: Socks5
  • Прокси IP адрес или имя DNS: ваш ip proxy
  • Порт: 28131 (либо ваш порт)
  • Имя пользователя: YOURPROXYLOGIN (логин от вашего прокси)
  • Пароль: YOURPROXYPASSWORD (пароль от вашего прокси)
  • Send DNS through SOCKS5 proxy: On

socks5 proxy foxyproxy edit





Посмотрим что у нас получилось

Я поднимал сразу на нескольких разных впсках как на arm64 так и на amd64. Обычным докером и через докер-композ. И всё отлично работает!

socks5 proxy good result 1

socks5 proxy good result 2


Ну всё, все молодцы кто до сюда дочитал

7 Комментарии

  1. Здравствуйте, я правильно понимаю что в статье идёт речь о поднятие только 1 ipv4 прокси на 1 vds? То есть будет только 1 уникальный ip адрес?

    ОтветитьУдалить
    Ответы
    1. Здравствуйте, да правильно.

      Удалить
    2. а есть готовые решения для агрегации всех парент проксей и разруливать их использование путем настройки динамических правил через удобный веб-интерфейс?

      Удалить
    3. @emlen таких не видел, но можно заюзать load balancer в качестве обратной прокси, и он сам будет разруливать и давать только живые. (ну без веб интерфейса, там только стата которая особо ничего не даст)

      Удалить
  2. Приветствую, спасибо за инструкцию
    Хотел бы попросить помощи, если найдется лишняя минута, пробую подключиться через Foxy Proxy и Switchy Omega после установки, но ни чего не выходит, в логах контейнера либо это:
    2023/04/13 11:01:00 [ERR] socks: Failed to authenticate: No supported authentication mechanism
    Либо:
    2023/04/13 10:53:27 [ERR] socks: Unsupported SOCKS version: [67] и [4]

    ОтветитьУдалить
  3. Пардон, разобрался, в firefox все отлично, на хромиуме летят ошибки

    ОтветитьУдалить
    Ответы
    1. Есть такое,ну это уже капризы хрома, тут к сожалению только так (или к счастью 😂). Либо поднимать для хромиума отдельно http проксю.

      Удалить

Отправить комментарий