Перейти до вмісту
Гайды 6 хв читання 34 переглядів

3proxy

Опануйте встановлення та налаштування 3proxy. Цей посібник детально описує налаштування легкого проксі-сервера, що покращує контроль над мережею та конфіденційність.

3proxy

3proxy — це легкий, високопродуктивний набір проксі-серверів, який можна встановити та налаштувати для надання послуг HTTP, HTTPS, SOCKSv4/4.5/5 та FTP-проксі, а також для відображення TCP-портів та перенаправлення трафіку, переважно шляхом компіляції з вихідного коду на Unix-подібних системах або за допомогою попередньо зібраних бінарних файлів на Windows.

3proxy — це компактний та універсальний проксі-сервер, розроблений для середовищ, що вимагають мінімального споживання ресурсів та високої конфігурованості. Його невеликий розмір та ефективність роблять його придатним для вбудованих систем, особистого використання або сценаріїв, де повнофункціональний проксі, такий як Squid, є надмірним.

Передумови

Перед встановленням 3proxy переконайтеся, що цільова система відповідає наступним вимогам:

  • Операційна система: Unix-подібна система (Linux, FreeBSD, macOS) для компіляції або Windows для бінарної дистрибуції. Цей посібник зосереджений на Linux.
  • Компілятор: GCC або Clang (для компіляції з вихідного коду).
  • Інструменти збірки: Утиліта make.
  • Мережевий доступ: Можливість завантажувати вихідні файли.
  • Привілеї користувача: root або sudo доступ для встановлення та налаштування системної служби.

Встановлення

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

Завантаження вихідного коду

Завжди завантажуйте останню стабільну версію з офіційного веб-сайту 3proxy або його репозиторію GitHub.

# Перейдіть до тимчасового каталогу
cd /tmp

# Завантажте останню стабільну версію (замініть на поточну версію, якщо вона відрізняється)
# Перевірте https://3proxy.ru/ або https://github.com/3proxy/3proxy для отримання останнього посилання
wget https://3proxy.ru/0.9.4/3proxy-0.9.4.tar.gz

# Розпакуйте архів
tar -xzf 3proxy-0.9.4.tar.gz

# Перейдіть до розпакованого каталогу
cd 3proxy-0.9.4

Компіляція та встановлення

3proxy використовує простий Makefile. Компіляція проста.

# Компіляція 3proxy
make -f Makefile.Linux

# Створення каталогів для встановлення
mkdir -p /usr/local/3proxy/bin
mkdir -p /usr/local/3proxy/etc
mkdir -p /usr/local/3proxy/logs

# Встановлення скомпільованого бінарного файлу та прикладу конфігурації
cp src/3proxy /usr/local/3proxy/bin/
cp 3proxy.cfg.sample /usr/local/3proxy/etc/3proxy.cfg

# Встановлення відповідних дозволів (необов'язково, але є хорошою практикою)
chmod 755 /usr/local/3proxy/bin/3proxy
chmod 640 /usr/local/3proxy/etc/3proxy.cfg

Для систем, що вимагають специфічних функцій (наприклад, NTLM-автентифікації, підтримки IPv6), зверніться до src/Makefile.Linux для отримання прапорів компіляції. Наприклад, щоб увімкнути NTLM: make -f Makefile.Linux NTLM.

Базова конфігурація

Основний файл конфігурації для 3proxy — це 3proxy.cfg. Він визначає порти прослуховування, типи проксі, методи автентифікації та правила доступу. Місце розташування за замовчуванням — /usr/local/3proxy/etc/3proxy.cfg.

Основні директиви

Мінімальний 3proxy.cfg включає:

  • nserver: Вказує DNS-сервери для розпізнавання імен хостів.
  • timeouts: Встановлює різні тайм-аути з'єднання.
  • log: Визначає шлях та формат файлу журналу.
  • users: Оголошує користувачів для автентифікації.
  • auth: Вказує метод автентифікації.
  • proxy, socks, tcppm: Визначає проксі-сервіси.

Приклад: Простий HTTP/HTTPS проксі

Ця конфігурація налаштовує HTTP/HTTPS проксі на порту 3128, вимагаючи базової автентифікації для користувача з іменем testuser та паролем password123.

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

# Глобальні налаштування
nserver 8.8.8.8 # Google Public DNS
nserver 8.8.4.4

# Тайм-аути в секундах
timeouts 1 5 30 60 180 1800 15 60

# Налаштування журналу
# log /usr/local/3proxy/logs/3proxy.log D # Щоденна ротація
log /usr/local/3proxy/logs/3proxy.log
logformat "- +_L%t.%. %N.%O %I %E %U %C:%c %R:%r %O %h %T"

# Користувачі для автентифікації: user:password
users testuser:CL:password123

# Метод автентифікації
# CL: Пароль у відкритому вигляді (не рекомендується для продакшну)
# LM: Хеш LAN Manager
# NT: Хеш NTLM
# P: Зашифрований пароль (внутрішній формат 3proxy, використовуйте `3proxy -e` для генерації)
auth strong # Використовуйте сильну автентифікацію (вимагає LM/NT або P)
# Для простих CL паролів використовуйте 'auth iponly,basic'

# Дозволити доступ для автентифікованих користувачів
allow testuser

# Визначити сервіс HTTP/HTTPS проксі
# -p 3128: Прослуховує порт 3128
# -n: Вимикає NTLM-автентифікацію для цього сервісу (якщо глобальний NTLM увімкнено)
# -a: Вмикає базову автентифікацію
proxy -p3128

Щоб згенерувати зашифрований пароль за допомогою 3proxy -e:

/usr/local/3proxy/bin/3proxy -e password123

Вивід (наприклад, _E_01000000010000000000000000000000) потім можна використовувати в директиві users з префіксом _E_: users testuser:_E_01000000010000000000000000000000.

Запуск 3proxy

Після налаштування 3proxy.cfg запустіть сервер:

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

Щоб запустити його у фоновому режимі як демон:

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

Розширені теми конфігурації

Методи автентифікації

3proxy підтримує різні методи автентифікації:

  • iponly: Автентифікація виключно на основі IP-адреси клієнта (без імені користувача/пароля).
  • basic: HTTP Basic Authentication (надсилає облікові дані у відкритому вигляді).
  • digest: HTTP Digest Authentication.
  • ntlm: NTLM-автентифікація (вимагає компіляції з підтримкою NTLM).
  • strong: Автоматично вибирає найсильніший доступний метод.

Приклад з auth iponly:

# /usr/local/3proxy/etc/3proxy.cfg
auth iponly
allow 192.168.1.0/24 # Дозволити всім клієнтам з цієї підмережі без явної автентифікації користувача
proxy -p3128

Контроль доступу

Директиви allow та deny контролюють доступ клієнтів на основі різних критеріїв. Правила обробляються по черзі. Застосовується перше відповідне правило.

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

# Заборонити конкретні IP-адреси
deny 192.168.1.10

# Дозволити конкретного користувача
allow myuser

# Дозволити конкретну підмережу для HTTP/HTTPS
allow * 192.168.1.0/24 * * HTTP HTTPS

# Заборонити доступ до конкретних доменів призначення
deny * * .example.com

Синтаксис для allow/deny такий: allow [користувач] [src_ip] [dst_ip] [target_port] [protocol]. * діє як шаблон.

Ланцюгові проксі (батьківські проксі)

3proxy може пересилати запити до іншого проксі-сервера за допомогою директиви parent.

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

# Ланцюг до вихідного HTTP-проксі
parent 1000 http 192.168.1.100 8080 myuser:mypass

# Ланцюг до вихідного SOCKS5-проксі
parent 1000 socks5 192.168.1.101 1080

Перший аргумент 1000 — це тайм-аут у мілісекундах.

SOCKS-проксі

Щоб налаштувати SOCKS-проксі (v4, v4.5, v5), використовуйте директиву socks.

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

# Визначити сервіс SOCKS-проксі на порту 1080
socks -p1080

Відображення TCP-портів (TCPPM)

Директива tcppm дозволяє пересилати TCP-з'єднання з локального порту на віддалений хост та порт.

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

# Пересилати з'єднання з локального порту 2222 на remotehost:22 (SSH)
tcppm -p2222 remotehost.example.com 22

Конфігурація журналювання

Директива log вказує файл журналу. logformat визначає структуру виводу. rotate налаштовує ротацію журналів.

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

# Журнал у /usr/local/3proxy/logs/access.log
log /usr/local/3proxy/logs/access.log

# Користувацький формат журналу
logformat "- +_L%t.%. %N.%O %I %E %U %C:%c %R:%r %O %h %T"

# Ротувати журнали щодня (D), щотижня (W), щомісяця (M) або за розміром (S<байти>)
rotate D /usr/local/3proxy/logs/archive

Системна інтеграція (служба systemd)

Для надійної роботи запустіть 3proxy як службу systemd.

  1. Створіть файл служби: /etc/systemd/system/3proxy.service

    ```ini
    [Unit]
    Description=3proxy Lightweight Proxy Server
    After=network.target

    [Service]
    Type=forking
    ExecStart=/usr/local/3proxy/bin/3proxy /usr/local/3proxy/etc/3proxy.cfg -d
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    User=nobody # Або спеціальний непривілейований користувач, наприклад '3proxy'
    Group=nogroup # Або спеціальна група

    [Install]
    WantedBy=multi-user.target
    `` *Примітка*: Створіть користувача/групу3proxy, якщо бажаєте:sudo useradd -r -s /sbin/nologin 3proxy. Налаштуйте права власності файлів для/usr/local/3proxy/logs`.

  2. Перезавантажте systemd, увімкніть та запустіть службу:

    bash sudo systemctl daemon-reload sudo systemctl enable 3proxy.service sudo systemctl start 3proxy.service sudo systemctl status 3proxy.service

Поради щодо усунення несправностей

  • Перевірте журнали: Завжди звертайтеся до файлу журналу 3proxy (/usr/local/3proxy/logs/3proxy.log за замовчуванням) для пошуку повідомлень про помилки або проблеми з доступом.
  • Правила брандмауера: Переконайтеся, що брандмауер (наприклад, ufw, firewalld, iptables) дозволяє вхідні з'єднання до портів прослуховування 3proxy (наприклад, 3128, 1080).
    bash # Приклад для ufw sudo ufw allow 3128/tcp
  • Синтаксис конфігурації: Перевірте 3proxy.cfg на наявність синтаксичних помилок. 3proxy особливо вимогливий до формату конфігурації.
  • Дозволи: Переконайтеся, що бінарний файл 3proxy має дозволи на виконання, а каталог журналів доступний для запису користувачем, який запускає службу.
  • Перезапустіть службу: Після будь-яких змін конфігурації перезавантажте або перезапустіть службу 3proxy (sudo systemctl restart 3proxy).

3proxy проти Squid

Функція 3proxy Squid
Використання ресурсів Мінімальне (низьке CPU, RAM) Помірне до високого (залежить від навантаження/функцій)
Складність Відносно проста, текстова конфігурація Складна, розширені параметри конфігурації
Типи проксі HTTP, HTTPS, SOCKS, FTP, TCPPM HTTP, HTTPS, FTP, ICP, ESI
Кешування Немає вбудованого кешування Надійне, висококонфігуроване кешування
Перехоплення SSL Обмежене/базове Розширене, на основі сертифікатів
Автентифікація Basic, Digest, NTLM, на основі IP Комплексна (LDAP, Kerberos, RADIUS)
Випадок використання Легкий, особистий, вбудований Корпоративний, високий трафік, фільтрація контенту
Розробка Активна, один розробник Активна, керована спільнотою
Оновлено: 04.03.2026
Назад до категорії

Читайте також

Гайды 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Гайды 1 хв

Як автоматизувати купівлю проксі через API

Автоматизація купівлі та управління проксі через API провайдерів: інтеграція, моніторинг використання та автопоновлення.

Гайды 1 хв

Створення інформаційної панелі моніторингу проксі в Grafana

Покрокове створення інформаційної панелі для моніторингу проксі в Grafana: метрики,

Гайды 1 хв

Як тестувати проксі перед покупкою

Чек-лист тестування проксі перед покупкою: швидкість, стабільність, анонімність, гео та сумісність з ціллю

Гайды 1 хв

Як налаштувати липкі сесії через проксі

Липкі сесії: підтримка однієї IP-адреси протягом усієї сесії, налаштовуються через провайдера та самостійно.

Гайды 1 хв

Використання проксі з Camoufox

Camoufox — це модифікований Firefox для обходу антиботів. Налаштування проксі, відбиток та режим невидимості.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.