5 250
Обложка: Как сделать цепочку из Proxy(3proxy) в докере из 2-х VPS

Как сделать цепочку из Proxy(3proxy) в докере из 2-х VPS

4
seopomosh.ru
seopomosh.ru
Редакция портала

Подготовили инструкцию, которую писали для личного пользования, на наш портал поступила заявка от пользователя организовать цепочку из прокси в одной африканской стране. В принципе ничего сложного, для этой задачи не раздумывая выбрали 3proxy - это бесплатный кроссплатформенный прокси-сервер.

Что нам для этого понадобиться:

  1. Два сервера(VPS) с самой простой конфигурацией с предустановленной Ubuntu 20.04
  2. Установленный клиент PuTTY: Telnet/SSH
  3. Базовые навыки работы с редактором nano

Настройка Сервера(VPS) №1

1) Обновим систему

apt update && apt upgrade -y

2) Установим Docker compose

apt install docker docker.io docker-compose

3) Скачаем необходимый образ

docker pull 3proxy/3proxy:latest

4) Создадим кофигурационные файлы

mkdir -p /dockerapp/3proxy/conf
nano /dockerapp/3proxy/conf/3proxy.cfg

5)Добавим в наш конфиг следующие строки


# Пропишем наши DNS сервера до 5 шт
nserver 156.154.70.1
nserver 156.154.71.1
nserver 8.26.56.26
nserver 8.20.247.20
# Оставим размер кэша для запросов DNS по умолчанию
nscache 65536
# Создаем пользователя user и назначаем ему пароль yourpassword
users user:CL:yourpassword
# Проверяется имя и пароль, переданные пользователем при подключении к прокси. Данный вид авторизации работает только с proxy и socks. Необходимо задание списка пользователей. Соединения от неизвестных пользователей не принимаются. После проверки имени пользвоателя и пароля происходит проверка списков доступа.
auth strong
# Разрешим использовать прокси только пользователю user, если занменить user на * , то доступ будет для все, но опять же проверяется auth strong где обязателен ввод пароля
allow user
# Команда parent используется в качестве расширения команды allow для управления перенаправлениями соединений, она и будет перенаправлять юзеров на 2-ой сервер
#user2 hghjgjhgj - это пользователи созданные на VPS №2
parent 1000 socks5 169.255.56.224 1080 user2 hghjgjhgj
parent 1000 connect 169.255.56.224 3128 user2 hghjgjhgj

# запустим socks прокси на порту 3129
socks -p3129
# запустим web прокси на порту 3333
proxy -p3333

6) Создадим файл yml для запуска через docker-compose

nano /dockerapp/3proxy/docker-compose.yml

7) Добавим в yml следующие строки


version: "2.1"
services:
  3proxysvc:
    image: 3proxy/3proxy:latest
    container_name: 3proxy
    volumes:
      - /dockerapp/3proxy/conf:/usr/local/3proxy/conf
    ports:
      - 3129:3129
      - 3333:3333	
    restart: unless-stopped

8) Запускаемся

docker-compose -f /dockerapp/3proxy/docker-compose.yml up -d

9) Проверим все ли работает

docker ps

10) Вывод должен быть таким


CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
46222fdc6da5   3proxy/3proxy:latest            "/bin/3proxy /etc/3p…"   20 seconds ago   Up 19 seconds   0.0.0.0:3129->3129/tcp, :::3129->3129/tcp, 0.0.0.0:3333->3333/tcp, :::3333->3333/tcp   3proxy

11) Если вносили изменения в конфигурационные файлы то выполните последовательно

docker-compose -f /dockerapp/3proxy/docker-compose.yml stop
docker-compose -f /dockerapp/3proxy/docker-compose.yml up -d

Настройка Сервера(VPS) №2

Выполняем инструкцию аналогично серверу №1 за исключением конфигов они будут следующими:

1) Отредактируем файл 3proxy.cfg

nano /dockerapp/3proxy/conf/3proxy.cfg

2) Внесем в него следующие строки


nserver 156.154.70.1
nserver 156.154.71.1
nserver 8.26.56.26
nserver 8.20.247.20
nscache 65536
users user1:CL:hghjgjhgj
users user2:CL:hghjgjhgj
auth strong
allow user1,user2
proxy -n -p3128 -a
# Socks5
socks -n -p1080 -a

3) Отредактируем файл docker-compose.yml

nano /dockerapp/3proxy/docker-compose.yml

4) Внесем в него следующие строки


version: "2.1"
services:
  3proxysvc:
    image: 3proxy/3proxy:latest
    container_name: 3proxy
    volumes:
      - /dockerapp/3proxy/conf:/usr/local/3proxy/conf
    ports:
      - 3128:3128
      - 1080:1080	
    restart: unless-stopped


Теперь осталось настроить подключение к прокси в клиенте.