Окт
10
2024

3proxy

~~~
sudo apt update && apt upgrade -y
sudo apt-get install -y build-essential nano net-tools
cd ~
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar xzf 0.9.3.tar.gz
cd ~/3proxy-0.9.3
sudo make -f Makefile.Linux
~~~
Устанавливаем
~~~
sudo mkdir /etc/3proxy
cd ~/3proxy-0.9.3/bin
sudo cp 3proxy /usr/bin/
~~~
Создадим отдельного системного пользователя proxy3, от имени которого и будет работать сервер:
~~~
sudo adduser —system —no-create-home —disabled-login —group proxy3
~~~
Узнаем UID и GID пользователя командой:
~~~
id proxy3
~~~
Создаем файл настроек:
~~~
sudo nano /etc/3proxy/3proxy.cfg
~~~

~~~
# Запускаем сервер от пользователя proxy3
# (возможно в вашей ОС uid и gid пользователя proxy3
# будут другими. Для их определения воспользуйтесь командой id proxy3)
setgid 113
setuid 108
#
# Пропишите правильные серверы имен посмотрев их
# на своем сервере в /etc/resolv.conf
nserver 8.8.8.8
nserver 8.8.4.4
#
# Оставьте размер кэша для запросов DNS по умолчанию
nscache 65536
#
# Равно как и таймауты
timeouts 1 5 30 60 180 1800 15 60
#
# Если несколько IP на одном сервере, указываем тот,
# через который будем ходить во внешний мир.
# Иначе эту строку игнорируем
#external
# Тоже самое, только указываем IP, который надо слушать
# Если проигнорировать, то прокси слушает все адреса на сервере
#internal
#
# Указываем на расположение файла с пользователями и паролями
users $/etc/3proxy/.proxyauth
#
# укажите режим запуска как deamon
daemon
#
# путь к логам и формат лога, к имени лога будет добавляться дата создания
log /var/log/3proxy/3proxy.log D
logformat «- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T»
#
# Включаем авторизацию по логинам и паролям
auth cache strong
#
# Конфигурация http(s) proxy
# Запускаем анонимный (-a) HTTP-proxy на порту (-p) p4002 и
# c отключенной NTLM-авторизацией (-n)
proxy -n -p4002 -a -i45.129.140.55 -e45.129.140.55
socks -n -p4001 -a -i45.129.140.55 -e45.129.140.55
~~~
Рекомендуется использовать порт из диапазона 49152–65535.
Вместо 45.129.140.55 подставляется IP сервера.

Создаем файл с пользователями и паролями:

~~~
sudo nano /etc/3proxy/.proxyauth
~~~
Где логин username и пароль strongpassword следует изменить на свои. Каждый новый пользователь указывается с новой строки. Выставляем права доступа к файлам прокси-сервера:
~~~
## addusers in this format:
#user:CL:password
##see for documentation: http://www.3proxy.ru/howtoe.asp#USERS
username:CL:strongpassword
~~~

~~~
sudo chown proxy3:proxy3 -R /etc/3proxy
sudo chown proxy3:proxy3 /usr/bin/3proxy
sudo chmod 444 /etc/3proxy/3proxy.cfg
sudo chmod 400 /etc/3proxy/.proxyauth
~~~
для логов:
~~~
sudo mkdir /var/log/3proxy
sudo chown proxy3:proxy3 /var/log/3proxy
~~~

автозагрузка:
~~~
sudo nano /etc/systemd/system/3proxy.service
~~~

~~~
[Unit]
Description=3proxy Proxy Server
After=network.target

[Service]
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
~~~

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

Проблемы с запуском чаще всего связаны с файлом /etc/3proxy/3proxy.cfg. При возникновении ошибки обычно указан порядковый номер проблемной строки.

Также мы увидим его в списке запущенных процессов в ответе на команду:
~~~
ps -ela | grep «3proxy»
~~~