Перейти к содержимому
Гайды 6 мин чтения 1 просмотров

3proxy

Полное руководство по 3proxy: быстрая установка и гибкая настройка лёгкого прокси-сервера. Создайте свой прокси с GProxy легко и быстро!

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

Обзор 3proxy

3proxy представляет собой компактное и высокопроизводительное решение для организации прокси-сервера. Его ключевые особенности включают:
* Кроссплатформенность: Работает на Linux, FreeBSD, Solaris, Windows и других системах.
* Многопротокольность: Поддерживает HTTP, HTTPS (CONNECT), SOCKSv4/v5, FTP, POP3, SMTP.
* Низкое потребление ресурсов: Идеален для систем с ограниченными аппаратными возможностями.
* Гибкая конфигурация: Широкие возможности по управлению доступом, аутентификацией и логированием.
* Поддержка цепочек прокси: Возможность перенаправления запросов через другие прокси-серверы.

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

Установка 3proxy

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

Предварительные требования

Для компиляции 3proxy необходимы базовые инструменты разработки.

Для Debian/Ubuntu:

sudo apt update
sudo apt install build-essential git -y

Для CentOS/RHEL/Fedora:

sudo yum update
sudo yum groupinstall "Development Tools" -y
sudo yum install git -y

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

  1. Клонирование репозитория:
    bash git clone https://github.com/z3APA3A/3proxy.git cd 3proxy

  2. Компиляция:
    Выберите соответствующий Makefile для вашей операционной системы. Для Linux используйте Makefile.Linux.
    bash make -f Makefile.Linux
    После успешной компиляции исполняемый файл 3proxy будет находиться в текущем каталоге.

  3. Установка (необязательно):
    Для удобства можно скопировать исполняемый файл и создать каталог для конфигурационных файлов.
    bash sudo mkdir -p /etc/3proxy /var/log/3proxy sudo cp src/3proxy /usr/local/bin/ sudo chown -R nobody:nogroup /var/log/3proxy # Или пользователя, от которого будет работать прокси
    Или можно использовать make install, который копирует бинарник в /usr/local/bin и создаёт базовый конфиг в /etc/3proxy/3proxy.cfg.
    bash sudo make -f Makefile.Linux install

Базовая настройка 3proxy

Конфигурация 3proxy осуществляется через файл 3proxy.cfg. По умолчанию, при использовании make install, этот файл создаётся в /etc/3proxy/3proxy.cfg. В противном случае его необходимо создать вручную.

Основные директивы конфигурации

Ниже представлены основные директивы для создания функционального прокси-сервера.

  • daemon: Запускает 3proxy в фоновом режиме как демон.
  • log <путь> <формат>: Указывает путь к файлу логов и формат записи.
    • D: Стандартный формат с датой и временем.
    • L: Расширенный формат логов.
  • rotate <количество_дней>: Автоматическая ротация логов.
  • users <имя>:<тип_пароля>:<пароль> [<имя2>:<тип_пароля>:<пароль2> ...]: Определяет пользователей и их пароли.
    • CL: Пароль будет автоматически хеширован при первом запуске (рекомендуется).
    • CR: Пароль в открытом виде.
  • auth <метод1>[,<метод2>...]: Задаёт методы аутентификации.
    • iponly: Авторизация по IP-адресу (без имени пользователя/пароля).
    • none: Без аутентификации.
    • simple: Базовая аутентификация (пароль в открытом виде).
    • strong: Базовая аутентификация (пароль хешируется).
    • ntlm: NTLM-аутентификация.
  • proxy [-n] [-a] [-p<порт>]: Определяет HTTP/HTTPS прокси-сервер.
    • -n: Не использовать NTLM-аутентификацию.
    • -a: Требовать аутентификацию.
    • -p<порт>: Порт, на котором будет работать прокси (по умолчанию 3128).
  • socks [-n] [-a] [-p<порт>]: Определяет SOCKSv4/SOCKSv5 прокси-сервер.
    • Аргументы аналогичны proxy. Порт по умолчанию 1080.
  • allow <пользователь> <исходный_IP> <целевой_IP> <целевой_порт> <день_недели> <время_начала>-<время_окончания>: Правило разрешения доступа.
  • deny <пользователь> <исходный_IP> <целевой_IP> <целевой_порт> <день_недели> <время_начала>-<время_окончания>: Правило запрета доступа.

Пример базового файла 3proxy.cfg

Создайте или отредактируйте файл /etc/3proxy/3proxy.cfg:

# Общие настройки и логирование
# Запустить 3proxy в режиме демона
daemon

# Путь к файлу логов и формат D (дата/время)
log /var/log/3proxy/3proxy.log D

# Ротация логов каждые 30 дней
rotate 30

# Использование системного DNS для разрешения имен
nserver 8.8.8.8
nserver 8.8.4.4

# Ограничение количества соединений на пользователя
maxconn 100

# Пользователи
# Пользователь 'user' с паролем 'password'. CL означает, что 3proxy сам хеширует пароль.
# После первого запуска 'password' в файле будет заменено на хеш.
users user:CL:password
# Можно добавить несколько пользователей через запятую или на разных строках
# users user2:CL:password2

# Методы аутентификации
# strong: требует имя пользователя и пароль (хешированный).
# iponly: разрешает доступ без пароля для определенных IP-адресов.
auth strong

# Правила доступа
# Разрешить всем пользователям (*) с любого IP (*) доступ ко всем ресурсам (*)
# Это общее правило, которое будет применяться, если более специфичных нет.
allow * * *

# HTTP/HTTPS прокси
# Запустить HTTP/HTTPS прокси на порту 3128
# -n: не использовать NTLM
# -a: требовать аутентификацию (на основе директивы 'auth')
proxy -n -a -p3128

# SOCKSv5 прокси
# Запустить SOCKSv5 прокси на порту 1080
# -n: не использовать NTLM
# -a: требовать аутентификацию (на основе директивы 'auth')
socks -n -a -p1080

После сохранения файла конфигурации, убедитесь, что права доступа позволяют 3proxy читать его.

Расширенная настройка

Методы аутентификации

3proxy поддерживает различные методы аутентификации. Выбор метода зависит от требований безопасности и интеграции с существующей инфраструктурой.

Метод auth Описание Примечания
iponly Авторизация по IP-адресу источника. Не требует имени пользователя/пароля. Простой, но менее безопасный метод. Используется с allow.
none Отключение аутентификации. Любой клиент может использовать прокси. Только для закрытых сетей или тестовых сред.
simple Базовая HTTP-аутентификация. Пароль хранится в 3proxy.cfg в открытом виде. Не рекомендуется из-за хранения паролей.
strong Базовая HTTP-аутентификация. Пароль хранится в 3proxy.cfg в хешированном виде (CL/CR). Рекомендуемый метод для аутентификации по имени/паролю.
ntlm NTLM-аутентификация. Интеграция с Windows-доменом. Требует наличия Samba/Winbind для работы.
ext Внешняя аутентификация через скрипт или программу. Позволяет интегрировать 3proxy с внешними системами аутентификации (LDAP, RADIUS и т.д.).

Пример использования auth iponly:

auth iponly
allow * 192.168.1.0/24 # Разрешить доступ без пароля из локальной сети
deny * * # Запретить всем остальным
proxy -p3128

Управление доступом (allow, deny)

Правила allow и deny определяют, кто и к каким ресурсам может получить доступ через прокси. Порядок правил имеет значение: 3proxy обрабатывает их сверху вниз до первого совпадения. Если правило не указано, доступ по умолчанию запрещён.

# Запретить доступ к определенному домену
deny * * example.com

# Разрешить пользователю 'admin' полный доступ
allow admin * *

# Запретить пользователю 'guest' доступ к порту 22 (SSH)
deny guest * * 22

# Разрешить всем пользователям доступ только к портам 80 и 443
allow * * * 80,443
deny * * * # Запретить остальное

Чейнинг прокси (Proxy Chaining)

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

# Определение родительского прокси
# parent <тип> <IP> <порт> <пользователь> <пароль>
# Типы: http, socks4, socks5
parent 1000 http 192.168.0.1:8080 user:password

# Использование родительского прокси для HTTP/HTTPS
proxy -n -a -p3128 -R1000 # -R1000 указывает на использование родительского прокси с ID 1000

Запуск 3proxy

После настройки 3proxy.cfg сервер можно запустить.

Ручной запуск

Для проверки конфигурации запустите 3proxy в интерактивном режиме:

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

Если в конфигурации есть директива daemon, 3proxy сразу перейдёт в фоновый режим. Без daemon, он будет работать в текущем терминале.

Запуск как системная служба (Systemd)

Рекомендуемый способ для производственных систем — настроить 3proxy как службу systemd.

  1. Создайте файл службы:
    bash sudo nano /etc/systemd/system/3proxy.service
  2. Добавьте следующее содержимое:
    ```ini
    [Unit]
    Description=3proxy Lightweight Proxy Server
    After=network.target

    [Service]
    Type=forking
    ExecStart=/usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    User=nobody # Или другой непривилегированный пользователь
    Group=nogroup # Или другая непривилегированная группа

    [Install]
    WantedBy=multi-user.target
    `` Убедитесь, что пути к исполняемому файлу и конфигурации верны. ИзменитеUserиGroupна соответствующие вашей системе, еслиnobody:nogroup` не подходит.

  3. Перезагрузите systemd, включите и запустите службу:
    bash sudo systemctl daemon-reload sudo systemctl enable 3proxy sudo systemctl start 3proxy

  4. Проверка статуса службы:
    bash sudo systemctl status 3proxy
    Проверьте логи службы для выявления возможных ошибок:
    bash journalctl -u 3proxy -f

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

При возникновении проблем с 3proxy, проверьте следующие моменты:

  • Файл конфигурации: Убедитесь, что синтаксис 3proxy.cfg корректен и пути к файлам (логов, пользователей) существуют и доступны для записи.
  • Порты: Проверьте, что порты, на которых работает 3proxy (например, 3128, 1080), не заняты другими приложениями.
    bash sudo netstat -tulpn | grep 3128
  • Брандмауэр: Убедитесь, что брандмауэр (ufw, firewalld, iptables) разрешает входящие соединения на используемые 3proxy порты.
    Пример для UFW:
    bash sudo ufw allow 3128/tcp sudo ufw allow 1080/tcp sudo ufw reload
  • Права доступа: Проверьте, что пользователь, от имени которого запущен 3proxy (например, nobody), имеет права на чтение 3proxy.cfg и запись в каталог логов (/var/log/3proxy).
  • Логи: Внимательно изучайте логи 3proxy (/var/log/3proxy/3proxy.log) и системные логи (journalctl -u 3proxy) для получения информации об ошибках.
  • Пароли: При использовании auth strong и users user:CL:password, убедитесь, что 3proxy успешно хешировал пароль в файле конфигурации. Если нет, это может быть связано с правами доступа к файлу.
Обновлено: 04.03.2026
Назад к категории

Попробуйте наши прокси

20,000+ прокси в 100+ странах мира