Что такое 3proxy и зачем он нужен
3proxy — это бесплатный прокси-сервер с открытым исходным кодом, который поддерживает множество протоколов: HTTP/HTTPS, SOCKS 4/4.5/5, FTP, POP3 и SMTP. Благодаря кроссплатформенности он работает на Linux, Windows и других системах, что делает его универсальным инструментом для организации прокси-доступа в небольших сетях или на отдельном сервере.
Основные сценарии использования включают:
- Обеспечение анонимности — подмена реального IP-адреса пользователя адресом прокси-сервера.
- Доступ к корпоративным сетям — подключение к внутренним ресурсам компании через защищённый канал.
- Веб-скрапинг и сбор данных — автоматизированный сбор информации с сайтов без блокировок.
- Обход географических ограничений — доступ к контенту, недоступному в вашем регионе.
Встроенные функции 3proxy включают авторизацию по IP-адресу или логину/паролю, ограничение скорости и лимитов трафика, а также контроль доступа через ACL (Access Control List). Это позволяет гибко настраивать права пользователей и защищать сервер от нежелательных подключений.
Где скачать 3proxy: официальные источники
Скачать 3proxy рекомендуется только с официальных источников, чтобы избежать вредоносных модификаций. Основной источник — страница проекта на GitHub, где публикуются релизы и исходный код. На странице релизов доступны готовые пакеты для различных операционных систем: .deb для Debian/Ubuntu, .rpm для AlmaLinux/CentOS, а также архивы с бинарными файлами для Windows.
Для загрузки через командную строку в Linux используется утилита wget. Например, для версии 0.9.5 (актуальной на момент написания) команда выглядит так:
wget https://github.com/3proxy/3proxy/releases/download/0.9.5/3proxy-0.9.5.x86_64.debДля RPM-пакетов:
wget https://github.com/3proxy/3proxy/releases/download/0.9.5/3proxy-0.9.5.x86_64.rpmТакже можно скачать исходный код в виде tar-архива и собрать программу самостоятельно — это полезно, если нужна более свежая версия или нестандартная конфигурация сборки. Всегда проверяйте контрольные суммы скачанных файлов, если они предоставлены, чтобы убедиться в целостности.
Установка 3proxy на Linux: пошаговая инструкция
Установка 3proxy на Linux возможна двумя способами: через готовый пакет или сборкой из исходного кода. Рассмотрим оба варианта для популярных дистрибутивов.
Установка из пакета
Для Debian/Ubuntu после скачивания .deb-файла выполните:
dpkg -i 3proxy-0.9.5.x86_64.debДля AlmaLinux/CentOS с .rpm-пакетом:
rpm -i 3proxy-0.9.5.x86_64.rpmПосле установки запустите сервис и проверьте его статус:
systemctl start 3proxy.service
systemctl status 3proxy.serviceЕсли статус показывает active (running), установка прошла успешно.
Сборка из исходного кода
Если вы предпочитаете собрать 3proxy самостоятельно, сначала установите необходимые зависимости. Для Ubuntu/Debian:
apt -y install gcc make wget tar libssl-devДля AlmaLinux/CentOS:
dnf install gcc make wget tar openssl-devel -yЗатем скачайте исходный код и соберите:
cd /usr/local/src
wget https://github.com/3proxy/3proxy/archive/refs/tags/0.9.5.tar.gz
tar -xvf 0.9.5.tar.gz
cd 3proxy-0.9.5/
ln -s Makefile.Linux Makefile
make -f Makefile.Linux
make installПосле сборки запустите сервис аналогично предыдущему способу. Обратите внимание, что при сборке могут потребоваться права root.
Установка 3proxy на Windows
3proxy также доступен для Windows, что удобно для быстрого развёртывания прокси на локальной машине. Процесс установки включает несколько шагов:
- Скачайте ZIP-архив с GitHub, содержащий бинарные файлы для Windows.
- Распакуйте архив в удобную директорию, например,
C:\3proxy. - В папке
binсоздайте конфигурационный файл3proxy.cfg(или используйте готовый пример). - Запустите прокси-сервер через командную строку:
cd C:\3proxy\bin
3proxy.exe 3proxy.cfgПри успешном запуске в консоли появится сообщение Accepting connections, и сервер начнёт принимать соединения на порту 3128 (по умолчанию). Проверить работу можно, настроив браузер на использование 127.0.0.1:3128 в качестве прокси.
Важно: конфигурационный файл должен находиться в той же папке, что и исполняемый файл, либо путь к нему указывается явно при запуске. Также избегайте лишних пробелов и табуляций в начале строк конфигурации — такие строки будут проигнорированы как комментарии.
Базовая настройка 3proxy: конфигурационный файл
Основной конфигурационный файл 3proxy — 3proxy.cfg. В нём задаются параметры работы сервера: порты, протоколы, авторизация, логирование и ограничения. Рассмотрим ключевые директивы на примере конфигурации с авторизацией по логину и паролю.
Пример конфигурации для HTTP и SOCKS5 прокси:
setgid 124
setuid 125
nserver 8.8.8.8
nscache 65536
log /var/log/3proxy.log D rotate 30
logformat "L%t %U %C %R %c %r %i %o %T"
auth strong
users user1:CL:PasswordForUser1
proxy -p3128 -i0.0.0.0
socks -p1080 -i0.0.0.0Пояснения:
setgidиsetuid— идентификаторы группы и пользователя, от имени которых работает сервер (принцип наименьших привилегий).nserver— DNS-сервер для разрешения имён; можно указать несколько адресов.nscache— размер кэша DNS-записей (в количестве записей), ускоряет повторные запросы.log— путь к лог-файлу и режим ротации (D — ежедневная, H — почасовая, W — еженедельная, M — месячная).rotate 30— количество хранимых старых лог-файлов.logformat— формат записи логов; можно настраивать под свои нужды, чтобы не раздувать файл.auth strong— требовать аутентификацию по логину и паролю.users user1:CL:PasswordForUser1— создание пользователя с паролем.proxy -p3128 -i0.0.0.0— запуск HTTP/HTTPS прокси на порту 3128, слушающего все интерфейсы.socks -p1080 -i0.0.0.0— запуск SOCKS5 прокси на порту 1080.
Для анонимного доступа (без авторизации) используется auth none и директива allow *. Однако такой режим крайне опасен: открытый прокси быстро находят сканеры и используют для спама или атак. Поэтому анонимный доступ рекомендуется только для тестов в изолированной сети.
Настройка авторизации и безопасности
Безопасность прокси-сервера критически важна, особенно если он доступен из интернета. 3proxy предоставляет несколько механизмов защиты:
Авторизация по логину и паролю
Используйте директиву auth strong и создавайте пользователей через users. Формат записи: username:CL:password. Например:
users user1:CL:StrongPass123Для хранения паролей в зашифрованном виде можно использовать другие типы хэширования, но в базовой настройке достаточно простого пароля.
Ограничение доступа по IP
С помощью ACL можно разрешить подключения только с определённых IP-адресов. Например, чтобы разрешить доступ только с адреса 192.168.1.100:
allow * 192.168.1.100
deny *Это особенно полезно для корпоративных сетей.
Принцип наименьших привилегий
Создайте отдельного системного пользователя для 3proxy, чтобы сервер не работал с правами root. В Linux это делается командой:
adduser --system --no-create-home --disabled-login --group proxy3Затем получите UID и GID пользователя и укажите их в конфигурации через setuid и setgid.
Ограничение скорости и трафика
3proxy позволяет задавать лимиты на скорость соединения и объём трафика, что защищает сервер от перегрузки и злоупотреблений. Эти параметры настраиваются через дополнительные директивы, такие как bandwidth и traffic.
Всегда комбинируйте несколько методов защиты: пароль + IP-фильтрация + ограничения трафика. Это значительно снижает риски несанкционированного использования.
Запуск 3proxy в Docker
Docker — удобный способ развернуть 3proxy без установки на основную систему. Официальные образы доступны на GitHub Container Registry, например ghcr.io/tarampampam/3proxy.
Анонимный режим
Запустите контейнер с пробросом портов 3128 и 1080:
docker run -d \
--name 3proxy-anonymous \
--restart unless-stopped \
-p 3128:3128 \
-p 1080:1080 \
ghcr.io/tarampampam/3proxy:latestПроверьте работу:
curl -x http://127.0.0.1:3128 http://ifconfig.me
curl --socks5 127.0.0.1:1080 http://ifconfig.meС авторизацией
Для запуска с логином и паролем передайте переменные окружения:
docker run -d \
--name 3proxy-with-password \
--restart unless-stopped \
-p 3128:3128 \
-p 1080:1080 \
-e AUTH_TYPE=strong \
-e USERS="user2:CL:PasswordForUser2" \
ghcr.io/tarampampam/3proxy:1Проверка аналогична, но с учётными данными:
curl -x http://user2:PasswordForUser2@127.0.0.1:3128 http://ifconfig.meИспользование Docker упрощает обновление и изоляцию сервиса, а также позволяет легко переносить конфигурацию между серверами. Не забудьте настроить рестарт контейнера (--restart unless-stopped), чтобы он автоматически запускался после перезагрузки системы.
Проверка работоспособности прокси
После настройки 3proxy необходимо убедиться, что он корректно работает. Самый простой способ — использовать утилиту curl для отправки запроса через прокси и проверки внешнего IP-адреса.
Проверка HTTP-прокси с авторизацией:
curl -x http://user1:PasswordForUser1@192.168.1.2:3128 http://ifconfig.meПроверка SOCKS5-прокси:
curl --socks5 user1:PasswordForUser1@192.168.1.2:1080 http://ifconfig.meЕсли команда возвращает IP-адрес вашего сервера, прокси работает. Для анонимного режима просто опустите учётные данные:
curl -x http://192.168.1.2:3128 http://ifconfig.meТакже можно проверить прокси через браузер, указав его адрес в настройках сети. В Windows для проверки локального сервера используйте 127.0.0.1:3128.
Обратите внимание: если вы используете файрвол (ufw, firewalld, iptables), необходимо открыть порты 3128 и 1080. Например, для ufw:
sudo ufw allow 3128/tcp
sudo ufw allow 1080/tcpДля firewalld:
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --permanent --add-port=1080/tcp
sudo firewall-cmd --reloadПосле открытия портов проверьте доступность прокси с внешней машины, чтобы убедиться, что сервер доступен из интернета.
Типичные ошибки и их устранение
При установке и настройке 3proxy пользователи часто сталкиваются с рядом проблем. Рассмотрим наиболее распространённые и способы их решения.
Сервис не запускается
Если systemctl status 3proxy.service показывает ошибку, проверьте конфигурационный файл на синтаксические ошибки. Частая причина — лишние пробелы в начале строк (они интерпретируются как комментарии) или неверные пути к файлам логов. Также убедитесь, что пользователь, от имени которого запускается сервис, имеет права на запись в лог-файл.
Прокси не отвечает на внешние запросы
Проверьте, открыты ли порты в файрволе. Используйте команды ufw status или firewall-cmd --list-all, чтобы убедиться, что порты 3128 и 1080 разрешены. Также проверьте, слушает ли 3proxy все интерфейсы (параметр -i0.0.0.0).
Ошибка аутентификации
Если при подключении с логином и паролем возникает ошибка, убедитесь, что в конфигурации указан auth strong и правильно создан пользователь. Формат записи должен быть точным: username:CL:password. Также проверьте, что пароль не содержит специальных символов, которые могут быть интерпретированы неправильно.
Проблемы с DNS
Если прокси не может разрешить доменные имена, проверьте директиву nserver. Убедитесь, что указан доступный DNS-сервер, например 8.8.8.8. Также можно увеличить размер кэша DNS (nscache), чтобы уменьшить задержки.
Конфликт портов
Если порт 3128 или 1080 уже занят другим приложением, 3proxy не сможет запуститься. Используйте netstat -tulpn для проверки занятых портов и измените порты в конфигурации при необходимости.
Сравнение 3proxy с другими прокси-решениями
На рынке существует множество прокси-серверов, и выбор зависит от конкретных задач. 3proxy выделяется рядом преимуществ, но имеет и ограничения.
Преимущества 3proxy:
- Бесплатность и открытый исходный код.
- Кроссплатформенность (Linux, Windows, macOS).
- Поддержка множества протоколов (HTTP, SOCKS, FTP и др.).
- Низкое потребление ресурсов, что позволяет запускать его даже на слабых VPS.
- Гибкая настройка через ACL и лимиты.
Недостатки:
- Отсутствие графического интерфейса (настройка только через конфигурационные файлы).
- Менее удобен для новичков по сравнению с коммерческими решениями.
- Нет встроенной поддержки шифрования трафика (например, TLS), хотя можно использовать внешние инструменты.
Альтернативы:
- Squid — мощный HTTP-прокси с кэшированием, но сложнее в настройке и не поддерживает SOCKS.
- Privoxy — прокси с фильтрацией контента, но ограничен по протоколам.
- Shadowsocks — популярен для обхода блокировок, но требует отдельного клиента.
Для большинства задач, связанных с анонимностью и доступом к ресурсам, 3proxy является оптимальным выбором благодаря простоте и функциональности. Если вам нужен только HTTP-прокси с кэшированием, возможно, стоит рассмотреть Squid, но для универсального использования 3proxy предпочтительнее.
Вопросы и ответы
Как скачать 3proxy для Windows?
Для Windows скачайте ZIP-архив с официальной страницы релизов на GitHub. Распакуйте его в удобную папку, например C:\3proxy. В папке bin создайте конфигурационный файл 3proxy.cfg и запустите 3proxy.exe из командной строки. Убедитесь, что конфиг находится в той же директории, что и исполняемый файл, либо укажите путь к нему явно.
Как настроить 3proxy с авторизацией по логину и паролю?
В конфигурационном файле 3proxy.cfg укажите директиву auth strong и создайте пользователя через users. Например: users user1:CL:PasswordForUser1. Затем запустите HTTP-прокси командой proxy -p3128 -i0.0.0.0 и SOCKS5 командой socks -p1080 -i0.0.0.0. После перезапуска сервиса подключение будет требовать логин и пароль.
Можно ли использовать 3proxy в Docker?
Да, для этого используйте официальный образ ghcr.io/tarampampam/3proxy. Запустите контейнер с пробросом портов, например: docker run -d -p 3128:3128 -p 1080:1080 ghcr.io/tarampampam/3proxy:latest. Для авторизации передайте переменные окружения AUTH_TYPE=strong и USERS="user:CL:password". Это удобно для быстрого развёртывания и изоляции.
Как проверить, что 3proxy работает?
Используйте утилиту curl. Для HTTP-прокси: curl -x http://user:pass@server:3128 http://ifconfig.me. Для SOCKS5: curl --socks5 user:pass@server:1080 http://ifconfig.me. Если команда возвращает IP-адрес вашего сервера, прокси функционирует. Также можно проверить через браузер, указав адрес прокси в настройках сети.
Какие порты нужно открыть для 3proxy?
По умолчанию 3proxy использует порт 3128 для HTTP и 1080 для SOCKS5. В файрволе (ufw, firewalld, iptables) необходимо разрешить входящие TCP-соединения на этих портах. Например, для ufw: sudo ufw allow 3128/tcp и sudo ufw allow 1080/tcp. Если вы изменили порты в конфигурации, откройте соответствующие.
Безопасно ли использовать анонимный 3proxy?
Анонимный режим (auth none) крайне опасен, если сервер доступен из интернета. Открытый прокси быстро находят сканеры и используют для спама, DDoS-атак или доступа к запрещённому контенту. Рекомендуется использовать анонимный режим только в изолированной тестовой сети, а для публичного доступа обязательно включать авторизацию и ограничения по IP.
Как обновить 3proxy до новой версии?
Для обновления скачайте новую версию пакета с GitHub и установите её поверх старой. Для Debian/Ubuntu: dpkg -i 3proxy-.deb. Для RPM: rpm -Uvh 3proxy-.rpm. Если вы собирали из исходников, повторите сборку с новой версией. После обновления перезапустите сервис и проверьте конфигурацию, так как некоторые параметры могли измениться.