Введение 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 секунд |
t6 | Keep-alive | 1800 секунд |
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 | |
Логин и пароль | Те же, что указаны в конфигурации |