Разворачиваем 3proxy на Ubuntu
Введение
3proxy — это компактный и гибкий прокси-сервер с открытым исходным кодом, поддерживающий протоколы HTTP, HTTPS, SOCKS, FTP и другие. Он особенно популярен благодаря своей легкости, простоте настройки и широким возможностям по контролю доступа. Ниже в статье я расскажу как развернуть его на Ubuntu и примеры подключения.
Настройка
Установка зависимостей
– Установим необходимые пакеты для сборки
sudo apt update && sudo apt install build-essential make -y
Клонирование репозитория
— Скачиваем исходный код 3proxy с GitHub:
git clone https://github.com/z3APA3A/3proxy.git cd 3proxy
Сборка 3proxy
make -f Makefile.Linux
— После сборки создаём директорию и копируем бинарник:
sudo mkdir -p /usr/local/3proxy/bin sudo cp ./bin/* /usr/local/3proxy/bin/
Создание конфигурационного файла
sudo mkdir -p /etc/3proxy sudo nano /etc/3proxy/3proxy.cfg
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>
t2 — На соединение к удалённому хосту
t3 — Бездействие между чтением запроса
t4— Ожидание ответа от удалённого хоста
t7 — Макс. время ожидания запроса
auth strong
— Указывает, что будет использоваться авторизация с логином и паролем.
allow <имя_пользователя>
— Разрешает доступ пользователю <имя_пользователя>, указанному выше в конфиге.
proxy -p3128
— Запускает HTTP-прокси на порту 3128.
socks -p1080
— Запускает SOCKS5-прокси на порту 1080.
flush
— Завершает конфигурацию.
Запуск прокси
Для проверки работы запустим сначала вручную:
/usr/local/3proxy/bin/3proxy /etc/3proxy/3proxy.cfg
Проверка через curl
Запускаем с другого ПК Curl, чтобы проверить работу прокси:
— HTTP: curl -x http://<имя_пользователя>:<пароль>@<ваш_IP>:3128 https://ifconfig.me
— SOCKS5: curl -x socks5h://<имя_пользователя>:<пароль>@<ваш_IP>:1080 https://ifconfig.me
Если в ответ вернулся IP - значит все работает корректно.
Настройка автозапуска через systemd
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