Перейти к содержимому

3proxy: простой и мощный прокси-сервер для личного использования

Инструменты
3proxy: простой и мощный прокси-сервер для личного использования

3proxy — это компактный, кроссплатформенный прокси-сервер с открытым исходным кодом, который сочетает в себе функции HTTP/HTTPS, SOCKSv4/v5, DNS и почтовых прокси в одном бинарном файле. Он спроектирован для работы с минимальным потреблением системных ресурсов, что позволяет запускать его на слабых VPS или встраиваемых системах для организации защищенных каналов связи и управления трафиком.

Архитектура и ключевые преимущества 3proxy

В отличие от тяжеловесных решений вроде Squid, 3proxy не требует сложной инфраструктуры и сотен мегабайт оперативной памяти. Его кодовая база оптимизирована для высокой производительности: исполняемый файл занимает менее 500 КБ, а потребление RAM даже при 1000 одновременных соединений редко превышает 10-15 МБ. Это делает его идеальным выбором для личного использования, когда нужно быстро развернуть прокси-шлюз на дешевом сервере.

Универсальность протоколов

3proxy поддерживает практически все востребованные протоколы:

  • HTTP/HTTPS: включая поддержку метода CONNECT для туннелирования SSL.
  • SOCKSv4/v4.5/v5: полная поддержка UDP-ассоциаций и IPv6.
  • DNS Proxy: кэширование и пересылка DNS-запросов.
  • Port Mapping (tcppm/udppm): перенаправление портов для доступа к внутренним сервисам.
  • SMTP/POP3/FTP: специализированные прокси для работы с почтой и файлами.

Модульность и расширяемость

Программа построена по модульному принципу. Каждый сервис (например, socks или proxy) запускается как отдельный поток внутри процесса. Конфигурация позволяет объединять эти сервисы, создавать цепочки (chaining) и применять сложные правила фильтрации. Для продвинутых пользователей доступна возможность написания собственных плагинов на C, расширяющих функционал сервера.

3proxy: простой и мощный прокси-сервер для личного использования

Установка и базовая конфигурация на Linux

Для большинства дистрибутивов (Ubuntu, Debian, CentOS) 3proxy доступен в официальных репозиториях, но для получения актуальной версии и максимальной производительности рекомендуется сборка из исходного кода. Это исключает лишние зависимости и гарантирует поддержку последних патчей безопасности.

Сборка из исходников

  1. Установите инструменты сборки: sudo apt update && sudo apt install build-essential -y.
  2. Скачайте последнюю версию с GitHub: wget https://github.com/3proxy/3proxy/archive/refs/tags/0.9.4.tar.gz.
  3. Распакуйте и перейдите в директорию: tar -xvzf 0.9.4.tar.gz && cd 3proxy-0.9.4.
  4. Скомпилируйте проект: make -f Makefile.Linux.
  5. Установите бинарные файлы: sudo make -f Makefile.Linux install.

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

Основной файл настроек обычно располагается по пути /etc/3proxy/3proxy.cfg. Ниже приведен пример базовой конфигурации, которая запускает HTTP и SOCKS прокси с авторизацией по логину и паролю.


# Запуск в режиме демона
daemon

# DNS-серверы для разрешения имен
nserver 8.8.8.8
nserver 1.1.1.1

# Размер кэша для DNS-запросов
nscache 65536

# Таймауты для различных типов соединений
timeouts 1 5 30 60 180 1800 15 60

# Создание пользователя (логин:CL:пароль)
users gproxy_user:CL:SecurePass123

# Требовать авторизацию для всех последующих сервисов
auth strong

# Разрешить доступ только созданному пользователю
allow gproxy_user

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

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

# Путь к лог-файлам и формат логирования
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"

После сохранения файла необходимо создать директорию для логов mkdir -p /var/log/3proxy и запустить сервис командой 3proxy /etc/3proxy/3proxy.cfg. При использовании качественных прокси от GProxy в качестве родительских узлов, 3proxy может выступать в роли локального агрегатора, обеспечивая стабильность соединения.

Управление доступом и безопасность

Безопасность — критический аспект при настройке публично доступного прокси. 3proxy предоставляет гибкую систему ACL (Access Control Lists), которая позволяет ограничивать доступ не только по паролям, но и по IP-адресам, времени суток или целевым доменам.

Типы авторизации

  • auth none: отсутствие авторизации (не рекомендуется для серверов с публичным IP).
  • auth iponly: проверка только по белому списку IP-адресов.
  • auth strong: проверка логина и пароля (метод Cleartext или MD5).

Пример ограничения по IP и времени

Если вы хотите, чтобы прокси был доступен только с вашего домашнего IP в рабочее время, используйте следующие директивы:


# Ограничение доступа по IP адресу
allow * 1.2.3.4 * * *
# Ограничение по времени (с 9:00 до 18:00)
allow * * * 09-18 *
# Запретить всё остальное
deny *

Продвинутые сценарии: Chaining и ротация трафика

Одной из самых мощных функций 3proxy является возможность создания цепочек прокси (chaining). Это позволяет перенаправлять трафик через внешние серверы, такие как резидентные или мобильные прокси от GProxy, добавляя слой локального управления и кэширования.

Настройка Parent Proxy

Директива parent позволяет указать внешний сервер, на который 3proxy будет пересылать запросы. Это полезно для обхода геоблокировок или распределения нагрузки.


# Формат: parent weight type ip port user password
# Пересылка 100% трафика на внешний SOCKS5 прокси GProxy
parent 1000 socks5 45.12.34.56 1080 gproxy_login gproxy_password

Балансировка нагрузки и отказоустойчивость

Вы можете указать несколько родительских прокси с разными весами. 3proxy будет автоматически распределять запросы между ними, что повышает общую пропускную способность и надежность системы.


# Распределение нагрузки между двумя серверами 50/50
parent 500 socks5 45.12.34.56 1080 user pass
parent 500 socks5 45.12.34.57 1080 user pass
3proxy: простой и мощный прокси-сервер для личного использования

Сравнение 3proxy с альтернативами

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

Критерий 3proxy Squid Dante Tinyproxy
Потребление RAM Минимальное (<20MB) Высокое (>200MB) Среднее (~50MB) Низкое (~30MB)
Поддержка SOCKS5 Да (полная) Ограниченно Да (лучшая) Нет
Протокол HTTP/HTTPS Да Да (с кэшированием) Нет Да
Сложность настройки Средняя (текстовый конфиг) Высокая Средняя Низкая
Chaining (цепочки) Да (гибко) Да Ограниченно Нет

3proxy занимает нишу между сверхпростыми решениями вроде Tinyproxy и мощными монстрами кэширования вроде Squid. Он идеально подходит для задач автоматизации, парсинга данных и обеспечения приватности без лишних затрат на инфраструктуру.

Интеграция с GProxy для максимальной эффективности

Использование 3proxy в связке с профессиональными услугами GProxy позволяет создать отказоустойчивую систему для работы с мультиаккаунтингом или масштабным сбором данных. 3proxy выступает в роли локального шлюза, который принимает соединения от ваших скриптов или браузеров и равномерно распределяет их по пулу резидентных IP-адресов GProxy.

Такая связка решает проблему частой смены конфигурации в конечном ПО: вы один раз настраиваете софт на локальный адрес 3proxy (например, 127.0.0.1:1080), а всю логику смены внешних IP, авторизации на родительских серверах и ведения логов берет на себя 3proxy.

Выводы

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

Практические советы:

  • Всегда используйте auth strong и сложные пароли, так как боты постоянно сканируют стандартные порты (3128, 1080) на предмет открытых прокси.
  • Для повышения анонимности отключайте передачу заголовков Via и X-Forwarded-For в конфигурации HTTP-прокси.
  • Используйте качественные исходные прокси от GProxy, чтобы минимизировать риск блокировок по IP со стороны целевых ресурсов.
  • Регулярно проверяйте размер лог-файлов или настройте ротацию через logrotate, чтобы не переполнить дисковое пространство сервера.
support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.