Как настроить несколько экземпляров 3proxy на VPS Ubuntu для использования множества портов?
Я успешно установил 3proxy на Ubuntu VPS через PuTTY, создал пользователя, пароль и настроил порт 10001. Прокси работает в формате http://wrgyer:wwerr@85.122.95.212:10001.
Мне нужно настроить несколько портов (например, 10001, 10002, 10003, 10004) с использованием тех же учетных данных, чтобы получить следующие прокси:
- http://wrgyer:wwerr@85.122.95.212:10001
- http://wrgyer:wwerr@85.122.95.212:10002
- http://wrgyer:wwerr@85.122.95.212:10003
- http://wrgyer:wwerr@85.122.95.212:10004
Подробно опишите, как это сделать.
3proxy несколько портов на VPS Ubuntu настраивается просто: добавьте в конфигурацию 3proxy несколько директив proxy (или socks) для портов 10001–10004 и используйте один файл пользователей с учетными данными wrgyer:CL:wwerr. Ниже — пошаговая инструкция для 3proxy ubuntu: где найти конфиг, как создать users.conf, пример 3proxy.cfg, открытие портов (ufw/iptables), перезапуск сервиса и тестирование через curl.
Содержание
- Как это работает и краткая схема: 3proxy несколько портов
- Требования и проверка: 3proxy ubuntu, 3proxy установка
- Один экземпляр 3proxy — настройка нескольких портов (простой способ)
- Множественные экземпляры 3proxy — когда нужен каждый процесс
- Открытие портов и правила брандмауэра (ufw / iptables)
- Запуск, проверка и отладка: тестируем порты 10001–10004
- Типичные ошибки и исправления
- Безопасность, логирование и оптимизация (3proxy socks5 и др.)
- Источники
- Заключение
Как это работает и краткая схема: 3proxy несколько портов
3proxy слушает на тех портах, которые вы перечисляете в конфигурации (директивы proxy / socks с опцией -p), или можно запускать несколько процессов с разными конфиґами. Для HTTP-прокси используется директива proxy -p<port>, для SOCKS5 — socks -p<port>. В конфиге обычно задают общую авторизацию (auth strong) и подключают файл с пользователями (пример: include /etc/3proxy/users.conf). Подробно о директивах — в официальной документации 3proxy (см. proxy, flush, auth) на странице мануала: https://3proxy.ru/doc/man3/3proxy.cfg.3.html и в ман-странице https://linux.die.net/man/3/3proxy.cfg.
Зачем два подхода? Если нужно несколько портов на одном IP — проще один конфиг с несколькими proxy -p.... Если нужен каждый порт на своей внешней IP (или отдельный процесс) — полезны множественные экземпляры (см. раздел про мультиинстансы и пример из практики: https://github.com/3proxy/3proxy/issues/647).
Требования и проверка: 3proxy ubuntu, 3proxy установка
Перед началом убедитесь, что:
- 3proxy уже установлен (вы упомянули, что установили через PuTTY). Для справки по установке можно посмотреть руководство: https://serverspace.io/support/help/how-to-setup-3proxy-on-ubuntu-20-04/.
- У вас есть права sudo на VPS.
- Сеть VPS позволяет открывать нужные порты (облачноe firewall / security group).
- Путь до конфигурации: чаще /etc/3proxy/3proxy.cfg или /usr/local/etc/3proxy/3proxy.cfg — найдите так:
sudo systemctl status 3proxy
which 3proxy
sudo grep -R "3proxy.cfg" /etc /usr/local 2>/dev/null
ps aux | grep -i 3proxy
Сделайте резервную копию текущего конфига:
sudo cp /etc/3proxy/3proxy.cfg /etc/3proxy/3proxy.cfg.bak
Один экземпляр 3proxy — настройка нескольких портов (простой способ)
Это самый прямой путь: в одном 3proxy.cfg добавить строки proxy для каждого порта. Пошагово.
- Создайте каталог и файл пользователей (одни и те же логин/пароль для всех портов):
sudo mkdir -p /etc/3proxy
sudo bash -c 'cat > /etc/3proxy/users.conf <<EOF
wrgyer:CL:wwerr
EOF'
sudo chmod 600 /etc/3proxy/users.conf
Формат строки login:CL:password — CL означает clear text. Пример и рекомендации к users.conf — в блоге с примером конфигурации: https://www.proxyrack.com/blog/setup-basic-3proxy-configuration/.
- Отредактируйте основной конфиг (пример минимального / читаемого конфига):
sudo bash -c 'cat > /etc/3proxy/3proxy.cfg <<EOF
nscache 65536
nserver 8.8.8.8
nserver 8.8.4.4
log /var/log/3proxy/3proxy-%y%m%d.log D
rotate 60
auth strong
include /etc/3proxy/users.conf
flush
proxy -p10001 -n
flush
proxy -p10002 -n
flush
proxy -p10003 -n
flush
proxy -p10004 -n
EOF'
Пояснения: auth strong включает проверку пользователей; include подключает users.conf; flush завершает ACL-блок (рекомендуется при разделении правил); -n отключает NTLM; для SOCKS5 используйте socks -pPORT -n.
- Создайте папку для логов:
sudo mkdir -p /var/log/3proxy
sudo chown root:root /var/log/3proxy
sudo chmod 750 /var/log/3proxy
- Откройте порты (ufw пример):
sudo ufw allow 10001/tcp
sudo ufw allow 10002/tcp
sudo ufw allow 10003/tcp
sudo ufw allow 10004/tcp
Или через iptables:
sudo iptables -I INPUT -p tcp --dport 10001 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 10002 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 10003 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 10004 -j ACCEPT
Не забудьте сохранить правила iptables (например, iptables-persistent) и проверить правила в облачном firewall.
- Перезапустите сервис 3proxy:
sudo systemctl daemon-reload
sudo systemctl restart 3proxy
sudo systemctl enable 3proxy
Если ваша система использует init-скрипты: sudo service 3proxy restart.
- Проверка, что порты слушают:
sudo ss -tlpn | grep 3proxy
# или
sudo netstat -tlpn | grep 3proxy
- Тест из локальной машины (пример curl):
curl -x http://wrgyer:wwerr@85.122.95.212:10001 https://example.com curl -x http://wrgyer:wwerr@85.122.95.212:10002 https://ifconfig.me
Если ответ приходит — всё работает. В блоге с примером аналогичного теста показан точно такой же подход: https://www.proxyrack.com/blog/setup-basic-3proxy-configuration/.
Примечания и тонкости:
- Если вы уже использовали другую форму подключения users (например,
users $/conf/passwdв вашем инсталляторе), адаптируйте путь вinclude/usersпод вашу систему (пример в руководстве установки: https://serverspace.io/support/help/how-to-setup-3proxy-on-ubuntu-20-04/). - Можно записать несколько портов одной строкой (например, диапазон), но явное перечисление даёт больше контроля и читаемости.
Множественные экземпляры 3proxy — когда нужен каждый процесс
Иногда нужно, чтобы каждый процесс имел своё окружение или выходил через разный внешний IP. Тогда создают отдельные конфиги и запускают несколько экземпляров 3proxy (systemd template или отдельные сервисы). Примерный алгоритм:
- Создайте шаблон systemd /etc/systemd/system/3proxy@.service:
[Unit]
Description=3proxy instance %i
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy-%i.cfg
Restart=on-failure
[Install]
WantedBy=multi-user.target
Убедитесь в пути до бинаря (which 3proxy) и поправьте ExecStart.
-
Создайте конфиґи
/etc/3proxy/3proxy-10001.cfg,/etc/3proxy/3proxy-10002.cfgи т.д. — в каждом только нужныйproxy -p10001 -nи своя логика. Если у вас несколько внешних IP, можно для исходящего трафика задать-e(bind outgoing IP) в директиве proxy, пример в обсуждении практического использования: https://github.com/3proxy/3proxy/issues/647. -
Запустите:
sudo systemctl daemon-reload
sudo systemctl start 3proxy@10001
sudo systemctl enable 3proxy@10001
Плюс этого подхода — изоляция, гибкость, возможность задать индивидуальную лимитацию для каждого экземпляра. Минусы — больше ресурсов и сложность управления.
Открытие портов и правила брандмауэра (ufw / iptables)
- ufw (быстро):
sudo ufw allow 10001/tcp
sudo ufw allow 10002/tcp
...
sudo ufw reload
- iptables:
sudo iptables -I INPUT -p tcp --dport 10001 -j ACCEPT
# сохранить правила
sudo apt install iptables-persistent
sudo netfilter-persistent save
- Облако (AWS/GCP/Hetzner и т.д.): проверьте security group / firewall панели и откройте те же порты там. Иначе внешние подключения будут блокироваться даже при поднятом ufw.
Запуск, проверка и отладка: тестируем порты 10001–10004
Проверки:
- Порт слушает:
sudo ss -tlpn | grep :1000
- Лог 3proxy:
sudo tail -n 200 /var/log/3proxy/3proxy-$(date +%Y%m%d).log
- Проверка прокси через curl:
curl -x http://wrgyer:wwerr@85.122.95.212:10003 https://ifconfig.me
- Если нужно запустить вручную и увидеть ошибки конфигурации:
sudo $(command -v 3proxy) /etc/3proxy/3proxy.cfg
(это запустит 3proxy в foreground — вы увидите сообщения об ошибках синтаксиса).
Для диагностики systemd:
sudo journalctl -u 3proxy -f
sudo systemctl status 3proxy
Типичные ошибки и исправления
- “Не проходит авторизация” — проверьте формат users.conf (
wrgyer:CL:wwerr), наличиеauth strongв конфиге и права на файл (chmod 600 /etc/3proxy/users.conf). - “Порт не слушает” — проверьте синтаксис конфига (запуск вручную как выше), ошибки в логах, конфликт порта с другим процессом.
- “Браузер/скрипт не подключается” — проверьте облачный firewall и локальный ufw/iptables.
- “Логи пустые” — проверьте директиву log и права на папку /var/log/3proxy.
- “Нужен SOCKS5” — добавьте
socks -p<port> -nв конфиг и откройте соответствующий порт.
Если возникли нестандартные ошибки, смотрите сообщения в log и в справочнике директив: https://3proxy.ru/doc/man3/3proxy.cfg.3.html.
Безопасность, логирование и оптимизация (3proxy socks5 и др.)
- Храните users.conf с правами 600. Не публикуйте файл в репозиториях.
- Ограничьте доступ по IP через firewall или директивы
allow/denyв конфиге 3proxy, если прокси не предназначен для публичного использования. - Лимиты: можно ограничить количество одновременных соединений
allow <user> <ip> <ip_mask> <ports> maxconn <n>— полезно при большом трафике. - Логирование и ротация: используйте
log+rotateдирективы (см. пример выше). - Если нужен SOCKS5, просто добавьте
socks -p<port> -nрядом с HTTP-портами — 3proxy поддерживает оба протокола одновременно. - Для высокой нагрузки подумайте о профилировании и, при необходимости, распределении портов между несколькими экземплярами или серверами.
Источники
- https://serverspace.io/support/help/how-to-setup-3proxy-on-ubuntu-20-04/
- https://www.proxyrack.com/blog/setup-basic-3proxy-configuration/
- https://3proxy.ru/doc/man3/3proxy.cfg.3.html
- https://github.com/3proxy/3proxy/issues/647
- https://linux.die.net/man/3/3proxy.cfg
- https://3proxy.ru/howtoe.asp
Заключение
Самый быстрый путь получить прокси на 10001–10004 — в одном конфиге 3proxy добавить соответствующие proxy -p... и использовать единый файл пользователей; затем открыть порты и перезапустить сервис. Если понадобится изоляция по IP или отдельные процессы — переходите на несколько экземпляров через systemd (вариант для продвинутых). Удачи с настройкой 3proxy — если хотите, могу сгенерировать готовый конфиг под вашу текущую систему (пришлите вывод which 3proxy и путь к существующему 3proxy.cfg).