Введение Link to heading

3proxy — это компактный и гибкий прокси-сервер с открытым исходным кодом, поддерживающий протоколы HTTP, HTTPS, SOCKS, FTP и другие. Он особенно популярен благодаря своей легкости, простоте настройки и широким возможностям по контролю доступа. Ниже в статье я расскажу как развернуть его на Ubuntu и примеры подключения.

Настройка Link to heading

Установка зависимостей Link to heading

– Установим необходимые пакеты для сборки

sudo apt update && sudo apt install build-essential make -y

Клонирование репозитория Link to heading

— Скачиваем исходный код 3proxy с GitHub:

git clone https://github.com/z3APA3A/3proxy.git
cd 3proxy

Сборка 3proxy Link to heading

— Собираем прокси-сервер:

make -f Makefile.Linux

— После сборки создаём директорию и копируем бинарник:

sudo mkdir -p /usr/local/3proxy/bin
sudo cp ./bin/* /usr/local/3proxy/bin/

Создание конфигурационного файла Link to heading

  • Создаём директорию и файл конфигурации:
sudo mkdir -p /etc/3proxy
sudo nano /etc/3proxy/3proxy.cfg
  • Пример конфигурации с поддержкой HTTP и SOCKS5
nscache 4000
timeouts 1 5 30 60 180 1800 15 60
users <имя_пользователя>:CL:<пароль>
auth strong
allow <имя_пользователя>
proxy -p3128
socks -p1080
flush

Замените <имя_пользователя> во всех местах конфига и <пароль> на свои значения.

По остальным значениям: nscache 4000 - Создаёт DNS-кэш на 4000 записей timeouts 1 5 30 60 180 1800 15 60 - Это по сути: timeouts <t1> <t2> <t3> <t4> <t5> <t6> <t7> <t8>

Каждый параметр — это таймаут на определённый тип соединения:

ПараметрНазначениеЗначение
t1На соединение с клиентом1 секунда
t2На соединение к удалённому хосту5 секунд
t3Бездействие между чтением запроса30 секунд
t4Ожидание ответа от удалённого хоста60 секунд
t5Простой соединения180 секунд
t6Keep-alive1800 секунд
t7Макс. время ожидания запроса15 секунд
t8Макс. время ответа60 секунд

auth strong — Указывает, что будет использоваться авторизация с логином и паролем.

allow <имя_пользователя> — Разрешает доступ пользователю <имя_пользователя>, указанному выше в конфиге.

proxy -p3128— Запускает HTTP-прокси на порту 3128.

socks -p1080 — Запускает SOCKS5-прокси на порту 1080.

flush — Завершает конфигурацию.

Запуск прокси Link to heading

Для проверки работы запустим сначала вручную:

/usr/local/3proxy/bin/3proxy /etc/3proxy/3proxy.cfg

Проверка через curl Link to heading

Запускаем с другого ПК Curl, чтобы проверить работу прокси:

— HTTP: curl -x http://<имя_пользователя>:<пароль>@<ваш_IP>:3128 https://ifconfig.me

— SOCKS5: curl -x socks5h://<имя_пользователя>:<пароль>@<ваш_IP>:1080 https://ifconfig.me

Если в ответ вернулся IP - значит все работает корректно.

Настройка автозапуска через systemd Link to heading

— Создаём systemd unit-файл:

sudo nano /etc/systemd/system/3proxy.service

— Добавляем содержимое:

[Unit]
Description=3proxy Proxy Server
After=network.target

[Service]
ExecStart=/usr/local/3proxy/bin/3proxy /etc/3proxy/3proxy.cfg
Restart=always
User=nobody
LimitNOFILE=512

[Install]
WantedBy=multi-user.target

— Активируем и запускаем:

sudo systemctl daemon-reexec
sudo systemctl enable 3proxy
sudo systemctl start 3proxy

— Проверяем что запустился сервис:

sudo systemctl status 3proxy

Использование Link to heading

Теперь для вашего браузера, Телеграм клиента и другого софта можно использовать такие настройки:

Тип подключенияПараметрЗначение
HTTP-проксиСерверIP или домен вашего сервера
Порт3128
Логин и парольТе же, что указаны в конфигурации
SOCKS5-проксиСерверIP или домен вашего сервера
Порт1080
ТипSOCKS5
Логин и парольТе же, что указаны в конфигурации