Установка и настройка 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
Настройка анонимности
- Меняем стандартные порты (3128 и 1080 хорошо известны):
vi /etc/3proxy/3proxy.cfg
socks -p1088
proxy -n -p3111
systemctl restart 3proxy
- Синхронизируем время с клиентом. На сервере задаём часовой пояс:
timedatectl set-timezone Europe/Berlin
На клиенте либо меняем часовой пояс системы, либо ставим плагин для браузера (например, Change Timezone для Firefox).
- Отключаем ICMP — по времени ответа на ping можно оценить удалённость клиента:
iptables -I INPUT -p icmp --icmp-type 8 -j REJECT
netfilter-persistent save
- Проверяем на странице 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.