Инструкция по установке и настройке 3proxy на VPS-сервере с Debian.
1. Подключаемся с помощью PuTTY, обновляем систему:
sudo apt-get update
sudo apt-get upgrade
2. Устанавливаем нужные компоненты для сборки из исходников
apt install build-essential make gcc
3. Скачиваем исходники последней версии и собираем
cd ~
wget --no-check-certificate https://github.com/z3APA3A/3proxy/archive/0.9.4.tar.gz
tar -xf 0.9.4.tar.gz
cd ~/3proxy-0.9.4
make -f Makefile.Linux
4. Копируем получившийся бинарный файл в /usr/bin/
cd ~/3proxy-0.9.4/bin
cp 3proxy /usr/bin/
5. Создадим системного пользователя proxy3 от имени которого и будет работать проски-сервер
adduser --system --no-create-home --disabled-login --group proxy3
6. Узнаём UID и GID пользователя (понадобится в конфигурации), записываем/запоминаем
id proxy3
7. Создаём директорию для конфигурации и файл настроек /etc/3proxy/3proxy.cfg
mkdir /etc/3proxy
nano /etc/3proxy/3proxy.cfg
8. Добавляем в файл /etc/3proxy/3proxy.cfg следующий код
# Запускаем сервер от пользователя proxy3
# (возможно в вашей ОС uid и gid пользователя proxy3
# будут другими. Для их определения воспользуйтесь командой id proxy3)
setgid 115
setuid 109
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
# Если несколько IP на одном сервере, указываем тот,
# через который ходить во внешний мир.
# Иначе эту строку игнорируем
#external <YOURSERVERIP>
# Тоже самое, только указываем IP, который надо слушать
# Если проигнорировать, то прокси слушает все адреса на сервере
#internal <YOURSERVERIP>
# расположение файла с пользователями и паролями
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) 3128 и
# c отключенной NTLM-авторизацией (-n)
proxy -n -p3128 -a
# пример конфигурации для совместной работы HTTP-proxy и SOCKS-proxy
#proxy -n -p3128 -a
#socks -p1080
Рекомендуется использовать другой порт вместо стандартного 3128 для прокси серверов, лучше всего из диапазона 49152-65535.
Для стабильной работы 3proxy рекомендуется удалить все комментарии и пустые строки из конфига.
9. Создаём файл с пользователями и паролями
nano /etc/3proxy/.proxyauth
10. Вставляем в него следующий код
## addusers in this format:
#user:CL:password
username:CL:userpass
логин: username и пароль: userpass следует изменить на свои.
Каждый новый пользователь указывается с новой строки.
11. Выставляем права доступа к файлам прокси-сервера
chown proxy3:proxy3 -R /etc/3proxy
chown proxy3:proxy3 /usr/bin/3proxy
chmod 444 /etc/3proxy/3proxy.cfg
chmod 400 /etc/3proxy/.proxyauth
12. Если будут вестиcь логи, то
mkdir /var/log/3proxy
chown proxy3:proxy3 /var/log/3proxy
13. Создаём скрипт для загрузки сервера и заполняем его
nano /etc/init.d/3proxyinit
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: 3Proxy
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Initialize 3proxy server
# Description: starts 3proxy
### END INIT INFO
case "$1" in
start)
echo Starting 3Proxy
/usr/bin/3proxy /etc/3proxy/3proxy.cfg
;;
stop)
echo Stopping 3Proxy
/usr/bin/killall 3proxy
;;
restart|reload)
echo Reloading 3Proxy
/usr/bin/killall -s USR1 3proxy
;;
*)
echo Usage: \$0 "{start|stop|restart}"
exit 1
esac
exit 0
14. Выставляем права на запуск и добавляем в автозагрузку
chmod +x /etc/init.d/3proxyinit
update-rc.d 3proxyinit defaults
15. Запускаем прокси-сервер
/etc/init.d/3proxyinit start