2026-09-19

Установка и настройка 3proxy на Ubuntu: прокси, SOCKS5 и анонимность

3proxy — компактный и быстрый прокси-сервер для Linux. Он умеет работать как HTTP/HTTPS-прокси, SOCKS5, поддерживает авторизацию по логину и паролю, ограничение скорости, гибкие правила доступа и работу с несколькими внешними интерфейсами. В этой инструкции разберём сборку из исходников, базовую настройку, аутентификацию, SOCKS и типичные ошибки.

Актуальная версия на сентябрь 2026 — 3proxy 1.0.0 (август 2026). В репозиториях Ubuntu пакета нет, поэтому ставим из исходников.


Настройка брандмауэра

По умолчанию Ubuntu пропускает все соединения. Если включён фаервол, открываем порт прокси.

а) iptables:

iptables -I INPUT 1 -p tcp --dport 3128 -j ACCEPT
netfilter-persistent save

Если команда сохранения не найдена:

apt-get install iptables-persistent

б) firewalld:

firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload

где 3128 — порт по умолчанию для прокси-режима.


Установка и запуск

Устанавливаем средства сборки:

apt-get install build-essential

Скачиваем актуальный релиз с GitHub-страницы 3proxy:

wget https://github.com/z3APA3A/3proxy/archive/refs/tags/1.0.0.tar.gz

в примере — версия 1.0.0.

Распаковываем и переходим в каталог:

tar xzf 1.0.0.tar.gz
cd 3proxy-*

Компилируем:

make -f Makefile.Linux

Создаём системного пользователя без возможности входа:

adduser --system --disabled-login --no-create-home --group proxy3

Готовим каталоги и копируем бинарник:

mkdir -p /var/log/3proxy /etc/3proxy
cp bin/3proxy /usr/bin/

Выставляем права:

chown proxy3:proxy3 -R /etc/3proxy /usr/bin/3proxy /var/log/3proxy

Смотрим uid и gid созданной учётной записи:

id proxy3
uid=109(proxy3) gid=113(proxy3) groups=113(proxy3)

где 109 — uid, 113 — gid.

Создаём конфигурацию:

vi /etc/3proxy/3proxy.cfg
setgid 113
setuid 109

nserver 77.88.8.8
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60

external 111.111.111.111
internal 111.111.111.111

daemon
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30

auth none
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n

Важно: setgid должен идти до setuid, а значения брать из вывода id proxy3. Опции external и internal — внешний и внутренний адреса; если прокси на одном адресе, они совпадают.

Запускаем:

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

Настройка браузера

Проверяем работу: в браузере (например, Firefox) задаём вручную прокси-сервер с адресом и портом 3128 и пробуем открыть сайты.


Автозапуск через systemd

Создаём юнит:

vi /etc/systemd/system/3proxy.service
[Unit]
Description=3proxy Proxy Server

[Service]
User=proxy3
Group=proxy3
Type=simple
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg
ExecStop=/bin/kill `/usr/bin/pgrep -u proxy3`
RemainAfterExit=yes
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable 3proxy
systemctl start 3proxy

Аутентификация

vi /etc/3proxy/3proxy.cfg

Добавляем пользователей:

users 3APA3A:CL:3apa3a
users imaxis1:CL:password
users "imaxis2:CR:$1$UsbY5l$ufEATFfFVL3xZieuMtmqC0"

Пример трёх пользователей: 3APA3A с паролем 3apa3a, imaxis1 с открытым паролем password и imaxis2 с md5-хэшем и солью UsbY5l. Хэш получается командой openssl passwd -1 -salt UsbY5l. При использовании символа $ строку пишем в кавычках.

Типы паролей:

  • CL — текстовый;
  • CR — зашифрованный (md5);
  • NT — в формате NT.

Включаем запрос логина, меняя auth на strong:

auth strong

Варианты auth:

  • none — без авторизации;
  • iponly — по IP-адресу клиента;
  • nbname — по NetBIOS-имени;
  • strong — по логину и паролю.

Возможна двойная авторизация, например auth nbname strong.

systemctl restart 3proxy

SOCKS5

Для прозрачной передачи пакетов добавляем в конфигурацию:

vi /etc/3proxy/3proxy.cfg
socks

Запускает SOCKS на порту 1080. Либо с явными параметрами:

socks -p8083 -i192.168.1.23 -e111.111.111.111

Порт 8083, внутренний интерфейс 192.168.1.23, внешний 111.111.111.111.

systemctl restart 3proxy

Настройка анонимности

  1. Меняем стандартные порты (3128 и 1080 хорошо известны):
vi /etc/3proxy/3proxy.cfg
socks -p1088
proxy -n -p3111
systemctl restart 3proxy
  1. Синхронизируем время с клиентом. На сервере задаём часовой пояс:
timedatectl set-timezone Europe/Berlin

На клиенте либо меняем часовой пояс системы, либо ставим плагин для браузера (например, Change Timezone для Firefox).

  1. Отключаем ICMP — по времени ответа на ping можно оценить удалённость клиента:
iptables -I INPUT -p icmp --icmp-type 8 -j REJECT
netfilter-persistent save
  1. Проверяем на странице 2ip.io/ru/privacy — нажимаем «Проверить».

Дополнительные настройки

Порты и интерфейсы

Разные интерфейсы на разных портах:

proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111

3proxy слушает 3128 на внутреннем 192.168.0.23 и выходит через 222.222.222.222, а также 8080 на 192.168.1.23 с выходом через 111.111.111.111. Не забудьте открыть новые порты в брандмауэре.

systemctl restart 3proxy

Ограничение скорости

bandlimin 1000000 user1,user3
bandlimin 5000000 user2,user4

user1 и user3 — 1 Мбит/с; user2 и user4 — 5 Мбит/с.

systemctl restart 3proxy

Ограничения доступа

Синтаксис правил:

allow <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> [weekdays] [timeperiodslist]
deny  ...

где:

  • userlist — пользователи через запятую;
  • sourcelist — сети клиентов;
  • targetlist — сети назначения;
  • targetportlist — порты назначения;
  • commandlist — команды, к которым применяется правило;
  • weekdays — дни недели (0–6 = Пн–Вс, 7 = Вс);
  • timeperiodslist — временные диапазоны.

Примеры:

allow * * * 80 HTTP
allow * * * 443,8443 HTTPS
allow * * * 21 FTP

Ограничение одновременных соединений:

maxconn 700
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111

700 соединений для прокси на 3128 и столько же для 8080.

systemctl restart 3proxy

Возможные ошибки

Unable to set gid. Command: ‘setgid’ failed with code 1

Причина: нарушен порядок директив — setuid стоит раньше setgid.

Решение: в /etc/3proxy/3proxy.cfg убеждаемся, что сначала идёт setgid, затем setuid:

setgid ...
setuid ...

Тонкости и подводные камни

  • Порядок setgid/setuid — частая причина ошибки запуска; setgid всегда первым.
  • Пользователь proxy3 — не запускайте прокси от root: используйте созданную системную учётную запись.
  • Открытые прокси — конфигурация auth none без правил allow превратит сервер в открытый прокси. Ограничивайте сети и включайте strong.
  • Только нужные порты — не оставляйте открытыми 3128/1080 при анонимном использовании.
  • Журнал — с log и rotate 30 логи хранятся 30 дней; проверяйте /var/log/3proxy/.

Шпаргалка

apt-get install build-essential
wget https://github.com/z3APA3A/3proxy/archive/refs/tags/1.0.0.tar.gz
tar xzf 1.0.0.tar.gz && cd 3proxy-*
make -f Makefile.Linux
adduser --system --disabled-login --no-create-home --group proxy3
mkdir -p /var/log/3proxy /etc/3proxy && cp bin/3proxy /usr/bin/
chown proxy3:proxy3 -R /etc/3proxy /usr/bin/3proxy /var/log/3proxy
id proxy3   # uid/gid -> в 3proxy.cfg (setgid, затем setuid)
systemctl enable 3proxy --now

Проверено на: Ubuntu 22.04/24.04/26.04 + 3proxy 1.0.0.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *