Установка 3proxy в Docker на Debian

sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose

Проверьте, что служба Docker запущена:

sudo systemctl enable --now docker
sudo systemctl status docker
sudo docker pull 3proxy/3proxy:latest

Проверка загрузки образа:

sudo docker images | grep 3proxy

Создайте директорию для конфигурации и логов:

sudo mkdir -p /opt/3proxy/conf
sudo mkdir -p /opt/3proxy/logs
sudo chmod -R 775 /opt/3proxy/logs

Создайте конфигурационный файл:

sudo vim /opt/3proxy/conf/3proxy.cfg

Пример содержимого файла `3proxy.cfg`:

log /logs/3proxy.log D
logformat "%d-%m-%Y %H:%M:%S %U %C:%c %R:%r %O %I %T"
rotate 30
 
timeouts 1 5 30 60 180 1800 15 60
 
nserver 1.0.0.1
nserver 1.1.1.1
nserver 8.8.8.8
nserver 8.8.4.4
 
nscache 65536
 
#internal 171.11.0.2
#external 171.11.0.2
 
auth strong
#CR — пароль задан в зашифрованном формате, CL - открытом 
# Генерация openssl passwd -1 "mySuperPass" $1$egr16gds$d24LEK8X/2llF4DN7627X/
users "myuser:CR:$1$5412$P325N2v1j2wbdXwRReMng."
allow myuser
 
proxy -p58172
 
flush
 
#proxy -p58172 -n
socks -p3129
sudo apt install makepasswd 
makepasswd --crypt-md5 
echo "пароль" | makepasswd --crypt-md5 --stdin 

Опцию –stdin поддерживает версия 1.4

Или использовать

 openssl passwd -1 "MySecretPassword" 

Создайте файл `docker-compose.yml` по пути `/opt/3proxy/docker-compose.yml`:

sudo vim /opt/3proxy/docker-compose.yml

Содержимое `docker-compose.yml`:

---
 services:
   3proxy:
     image: 3proxy/3proxy:latest
     container_name: 3proxy
     volumes:
       - /opt/3proxy/conf:/usr/local/3proxy/conf:ro
       - /opt/3proxy/logs:/usr/local/3proxy/logs
     ports:
       - "58172:58172"
     ulimits:
       nofile:
         soft: 65536
         hard: 65536
     healthcheck:
       test: ["CMD-SHELL", "nc -z 127.0.0.1 58172 || exit 1"]
       interval: 15s
       timeout: 3s
       retries: 5
       start_period: 5s
     logging:
       driver: json-file
       options:
         max-size: "10m"
         max-file: "3"
     restart: unless-stopped
 

Запустите сервис в фоне:

sudo docker compose -f /opt/3proxy/docker-compose.yml up -d

Проверьте статус контейнера:

sudo docker ps
sudo ufw allow  58172 comment "3Proxy HTTP"
sudo ufw reload

Проверьте, прослушивается ли порт:

sudo ss -ntulp | grep 58172
  • Внутри контейнера `/usr/local/3proxy` — chroot, пути к логам должны быть относительными.
  • Рекомендуется ограничить доступ к прокси через `iptables` или `ufw`.
  • Можно добавить несколько пользователей в конфиге, разделяя строки в блоке `users`.