3proxy: различия между версиями
imported>Vix (Новая страница: «Прокси сервер который умеет HTTP\HTTPS, ознакомится можно [https://ru.wikipedia.org/wiki/3proxy тут]. <hr> Для ус…») |
imported>Vix Нет описания правки |
||
| (не показано 19 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
Прокси сервер который умеет HTTP\HTTPS, ознакомится можно [https://ru.wikipedia.org/wiki/3proxy тут]. | Прокси сервер который умеет '''HTTP\HTTPS''', ознакомится можно [https://ru.wikipedia.org/wiki/3proxy тут]. | ||
<hr> | <hr> | ||
Для установки необходимо сделать сдледующее: | Для установки в '''Debian 7,8,9''' - необходимо сделать сдледующее: | ||
1. скачать архив последней версии [https://github.com/z3APA3A/3proxy тут]: | 1. скачать архив последней версии [https://github.com/z3APA3A/3proxy тут]: | ||
* - через git: | * - через '''git''': | ||
git clone https://github.com/z3APA3A/3proxy.git | git clone https://github.com/z3APA3A/3proxy.git | ||
* - скачиваем архивом | * - или скачиваем '''архивом''' | ||
wget -c https://github.com/z3APA3A/3proxy/releases | wget -c https://github.com/z3APA3A/3proxy/releases | ||
2. если копия сделана через git то просто создаем в папке 3proxy файл debinstall.sh | 2. если копия сделана через '''git''' то просто создаем в папке '''3proxy''' файл будущего скрипта инсталлятора '''debinstall.sh''' | ||
cd 3proxy | cd 3proxy | ||
touch debinstall.sh | touch debinstall.sh | ||
иначе распаковываем архив и также создаем этот файл.<br> | |||
Далее.. | |||
вносим содержимое: | |||
#!/bin/bash | |||
# author Koshuba V.O. | |||
# config examples & init.d script author Altavista375 | |||
# (c) 2018 | |||
# the install for Debian | |||
# | |||
option=$1; | |||
getpkg=( "build-essential" "wget" "tar" "gzip" ); | |||
log="/var/log/syslog"; | |||
deb_release=""; | |||
## functions & operations | |||
operation_install=( "checkDep" "install" "printInfo" ); | |||
operation_uninstall=( "checkDep" "uninstall" "printInfo" ); | |||
operation_help=( "printInfo" ); | |||
execute_func=(); | |||
## | |||
## -@F logic executor | |||
function eXlogic() { | |||
lEnd=1; | |||
if [[ ${#iFs[@]} -eq 0 ]]||[[ ${#iFs[@]} != ${#logic[@]} ]] | |||
then echo "exit - eXlogic"; | |||
exit 0; | |||
fi | |||
local exfunc=(); | |||
for ((lg_index=0; lg_index != ${#iFs[@]}; lg_index++)) | |||
do | |||
## !! debug operation... | |||
#echo "eXlogic = execution: function ${iFs[$lg_index]} : index=$lg_index"; | |||
local lg=$(echo $((${iFs[$lg_index]})) ); | |||
local exfunc=( ${logic[$lg_index]} ); | |||
local runfunc=$(echo ${exfunc[$lg]}| sed 's/\"//g'); | |||
$runfunc; | |||
if [[ $lEnd == 0 ]] | |||
then lg_index=$((${#iFs[@]}-1)); | |||
fi | |||
done | |||
iFs=(); | |||
logic=(); | |||
value_in=""; | |||
} | |||
##--@F write log events | |||
function writeToLog() { | |||
for ((rpt_index=0; rpt_index != ${#reports[@]}; rpt_index++)) | |||
do | |||
echo "$rdate 3proxy install message: ${reports[$rpt_index]}">>$log; | |||
done | |||
} | |||
##--@F make all errors | |||
function makeErr() { | |||
reports[${#reports[@]}]="Operation not succeded"; | |||
printInfo; | |||
writeToLog; | |||
exit 0; | |||
} | |||
##--@F Check the program dependency | |||
function checkDep() { | |||
if [[ ! $(apt-cache policy ${getpkg[@]} | grep status|wc -l) = $(echo -e ${#getpkg[@]}) ]]; | |||
then apt-get install $(echo ${getpkg[@]}); | |||
fi | |||
for ((ipkg=0; ipkg != ${#getpkg[@]}; ipkg++)) | |||
do | |||
if [ ! "$(apt-cache policy ${getpkg[$ipkg]} | grep status)" ] | |||
then | |||
## lang messages if yes then lang else us... | |||
reports[${#reports[@]}]="Do not set ${getpkg[$ipkg]} package"; | |||
makeErr; | |||
fi | |||
done | |||
local lsbtools=$(whereis -b lsb_release|awk '/^lsb_release:/{print $2}'); | |||
deb_release=$( $lsbtools -r|awk '/^Release:/{print $2}'|sed 's/\./ /g'|awk '{print$1}' ); | |||
} | |||
function printInfo() { | |||
value_in="$option"; | |||
iFs=( "$(echo -n $value_in|wc -m) == 0" | |||
"$(echo -n $value_in|sed 's/--help//g'|wc -m) == 0" | |||
"$(echo -n ${#reports[@]}) == 0" ); | |||
logic=( '"" "pIhelp"' | |||
'"" "pIhelp"' | |||
'"pIdf" "pIhelp"' ); | |||
function pIhelp() { | |||
lEnd=0; | |||
clear | |||
echo | |||
echo -e "install: debinstall.sh --install"; | |||
echo -e "uninstall: debinstall.sh --uninstall"; | |||
echo -e "help: debinstall.sh --help"; | |||
exit 0; | |||
} | |||
## default function last eXlogic.. | |||
function pIdf() { | |||
for ((rpt_index=0; rpt_index != ${#reports[@]}; rpt_index++)) | |||
do | |||
echo "${reports[$rpt_index]}"; | |||
done | |||
exit 0; | |||
} | |||
eXlogic; | |||
} | |||
## -@F install 3proxy | |||
function install() { | |||
make -f Makefile.Linux | |||
if [ ! -d "/etc/3proxy" ] | |||
then | |||
mkdir -p /etc/3proxy; | |||
fi | |||
cp $PWD/bin/3proxy /usr/bin/ | |||
adduser --system --no-create-home --disabled-login --group proxy3 | |||
chown proxy3:proxy3 /usr/bin/3proxy | |||
iduser=$(id -u proxy3); | |||
idgroup=$(id -g proxy3); | |||
# config examples author Altavista375 | |||
touch /etc/3proxy/3proxy.cfg | |||
echo -e '# Запускаем сервер от пользователя proxy3 | |||
# (возможно в вашей ОС uid и gid пользователя proxy3 | |||
# будут другими. Для их определения воспользуйтесь командой id proxy3) | |||
setgid '"$idgroup"' | |||
setuid '"$iduser"' | |||
# | |||
# Пропишите правильные серверы имен посмотрев их | |||
# на своем сервере в /etc/resolv.conf | |||
nserver 127.0.0.1 | |||
# | |||
maxconn 2047 | |||
# Оставьте размер кэша для запросов DNS по умолчанию | |||
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 | |||
log /var/log/3proxy/access.log | |||
#logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T" | |||
# It's squid log format, but it almost hides error messages (формат как у squid) | |||
logformat "- +_G%t.%. %D %C TCP_MISS/200 %I %1-1T %2-2T %U DIRECT/%R application/unknown" | |||
archiver gz /usr/bin/gzip %F | |||
rotate 7 | |||
# | |||
# Включаем авторизацию по логинам и паролям | |||
#auth cache strong | |||
# | |||
# Конфигурация http(s) proxy | |||
# Запускаем анонимный (-a) HTTP-proxy на порту (-p) 3128 и | |||
# c отключенной NTLM-авторизацией (-n) | |||
proxy -n -p3128 -a'>/etc/3proxy/3proxy.cfg | |||
chown proxy3:proxy3 /etc/3proxy/3proxy.cfg | |||
chmod 444 /etc/3proxy/3proxy.cfg | |||
if [ ! -d "/var/log/3proxy" ] | |||
then | |||
mkdir -p /var/log/3proxy; | |||
chown proxy3:proxy3 /var/log/3proxy | |||
fi | |||
# script starts 3proxy author Altavista375 | |||
touch /etc/init.d/3proxyinit | |||
echo '#!/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'>/etc/init.d/3proxyinit; | |||
chmod 0644 /etc/init.d/3proxyinit; | |||
chmod +x /etc/init.d/3proxyinit; | |||
и | if [[ $deb_release < 8 ]]; | ||
then | |||
update-rc.d -n 3proxyinit defaults; | |||
else | |||
echo -e ' [Unit] | |||
SourcePath=/etc/3proxy | |||
Description=proxy | |||
After=network-online.target | |||
Wants=network-online.target | |||
Conflicts=shutdown.target | |||
[Service] | |||
User=proxy3 | |||
Group=proxy3 | |||
GuessMainPID=no | |||
Type=notify | |||
NotifyAccess=all | |||
RemainAfterExit=yes | |||
WorkingDirectory=/etc/3proxy/ | |||
ExecStart=/etc/init.d/3proxyinit start | |||
ExecStop=/etc/init.d/3proxyinit stop | |||
ExecReload=/etc/init.d/3proxyinit restart | |||
TimeoutSec=5min | |||
[Install] | |||
WantedBy=multi-user.target | |||
'>/lib/systemd/system/3proxy.service; | |||
systemctl daemon-reload | |||
/bin/systemctl enable 3proxy.service; | |||
fi | |||
# | |||
reports[${#reports[@]}]="3proxy install susseful"; | |||
writeToLog; | |||
printInfo; | |||
} | |||
## -@F Uninstall 3proxy | |||
function uninstall() { | |||
if [[ $deb_release < 8 ]]; | |||
then | |||
/etc/init.d/3proxyinit stop; | |||
update-rc.d -n 3proxyinit remove; | |||
else | |||
/bin/systemctl stop 3proxy.service; | |||
/bin/systemctl disable 3proxy.service; | |||
rm /lib/systemd/system/3proxy.service; | |||
systemctl daemon-reload; | |||
fi | |||
rm -f /etc/3proxy/3proxy.cfg; | |||
rm -f /usr/bin/3proxy; | |||
rm -rf /etc/3proxy; | |||
deluser proxy3; | |||
reports[${#reports[@]}]="3proxy uninstall susseful"; | |||
writeToLog; | |||
printInfo; | |||
} | |||
##--@F executor | |||
function executor() { | |||
if [[ ${#execute_func[@]} -eq 0 ]] | |||
then echo "exit"; | |||
exit 0; | |||
fi | |||
for ((ex_index=0; ex_index != ${#execute_func[@]}; ex_index++)) | |||
do | |||
## !! debug operation... | |||
##echo "execution: function ${execute_func[ex_index]}" | |||
${execute_func[ex_index]}; | |||
done | |||
} | |||
##- Begin 3proxy | |||
case "$option" in | |||
## install 3proxy | |||
"--install" | "--install" ) | |||
execute_func=( ${operation_install[@]} ); | |||
executor; | |||
exit 0 | |||
;; | |||
## uninstall 3proxy | |||
"--uninstall" | "--uninstall" ) | |||
execute_func=( ${operation_uninstall[@]} ); | |||
executor; | |||
exit 0 | |||
;; | |||
## help | |||
"--help" | "--help" ) | |||
execute_func=( ${operation_help[@]} ); | |||
executor; | |||
exit 0 | |||
;; | |||
* ) | |||
# selecting defaults. | |||
execute_func=( ${operation_help[@]} ); | |||
executor; | |||
exit 1 | |||
;; | |||
esac | |||
3. даем права на запуск | |||
chmod +x debinstall.sh | |||
4. запускаем скрипт, он может потребовать доустановить пакеты - соглашаемся. | |||
скрипт дает подсказку при простом запуске или с ключем --help | |||
5. после установки правим конфигурационный файл /etc/3proxy/3proxy.cfg | |||
Примеры можно посмотреть в папке с исходным кодом: ../3Proxy/cfg | |||
'''* PS/ почему я написал свой скрипт установки?'''<br> | |||
Все просто, в установщике для '''Linux''' есть только установка под '''init.d''', а в новых версиях уже везде '''systemd'''.<br> | |||
Так как я уже делал подобное, то просто адаптировал свой инталлятор для данной установки.<br> | |||
Использовать его или нет, вопрос важего желания. Мой скрипт как ставит так и чистит все корректно.<br> | |||
Проверено в работе на '''Debian 8,9'''. | |||
'''ИСТОЧНИКИ:''' | |||
<hr> | |||
* [https://community.vscale.io/hc/ru/community/posts/115001609005-%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-3proxy-%D0%BD%D0%B0-Debian-Ubuntu?page=1#community_comment_115001539545 Установка и настройка прокси-сервера 3proxy на Debian/Ubuntu ] | |||
* [https://www.3proxy.ru/howtor.asp 3APA3A 3proxy tiny proxy server HowTo ] | |||
* [http://timp87.blogspot.com/2014/04/3proxy.html Попробуем 3proxy?] | |||
* [http://www.wertup.ru/ubuntu/3proxy Установка и настройка 3proxy tiny free proxy] | |||
Текущая версия от 15:01, 25 декабря 2018
Прокси сервер который умеет HTTP\HTTPS, ознакомится можно тут.
Для установки в Debian 7,8,9 - необходимо сделать сдледующее:
1. скачать архив последней версии тут:
* - через git: git clone https://github.com/z3APA3A/3proxy.git * - или скачиваем архивом wget -c https://github.com/z3APA3A/3proxy/releases
2. если копия сделана через git то просто создаем в папке 3proxy файл будущего скрипта инсталлятора debinstall.sh
cd 3proxy touch debinstall.sh
иначе распаковываем архив и также создаем этот файл.
Далее..
вносим содержимое:
#!/bin/bash
# author Koshuba V.O.
# config examples & init.d script author Altavista375
# (c) 2018
# the install for Debian
#
option=$1;
getpkg=( "build-essential" "wget" "tar" "gzip" );
log="/var/log/syslog";
deb_release="";
## functions & operations
operation_install=( "checkDep" "install" "printInfo" );
operation_uninstall=( "checkDep" "uninstall" "printInfo" );
operation_help=( "printInfo" );
execute_func=();
##
## -@F logic executor
function eXlogic() {
lEnd=1;
if [[ ${#iFs[@]} -eq 0 ]]||[[ ${#iFs[@]} != ${#logic[@]} ]]
then echo "exit - eXlogic";
exit 0;
fi
local exfunc=();
for ((lg_index=0; lg_index != ${#iFs[@]}; lg_index++))
do
## !! debug operation...
#echo "eXlogic = execution: function ${iFs[$lg_index]} : index=$lg_index";
local lg=$(echo $((${iFs[$lg_index]})) );
local exfunc=( ${logic[$lg_index]} );
local runfunc=$(echo ${exfunc[$lg]}| sed 's/\"//g');
$runfunc;
if $lEnd == 0
then lg_index=$((${#iFs[@]}-1));
fi
done
iFs=();
logic=();
value_in="";
}
##--@F write log events
function writeToLog() {
for ((rpt_index=0; rpt_index != ${#reports[@]}; rpt_index++))
do
echo "$rdate 3proxy install message: ${reports[$rpt_index]}">>$log;
done
}
##--@F make all errors
function makeErr() {
reports[${#reports[@]}]="Operation not succeded";
printInfo;
writeToLog;
exit 0;
}
##--@F Check the program dependency
function checkDep() {
if [[ ! $(apt-cache policy ${getpkg[@]} | grep status|wc -l) = $(echo -e ${#getpkg[@]}) ]];
then apt-get install $(echo ${getpkg[@]});
fi
for ((ipkg=0; ipkg != ${#getpkg[@]}; ipkg++))
do
if [ ! "$(apt-cache policy ${getpkg[$ipkg]} | grep status)" ]
then
## lang messages if yes then lang else us...
reports[${#reports[@]}]="Do not set ${getpkg[$ipkg]} package";
makeErr;
fi
done
local lsbtools=$(whereis -b lsb_release|awk '/^lsb_release:/{print $2}');
deb_release=$( $lsbtools -r|awk '/^Release:/{print $2}'|sed 's/\./ /g'|awk '{print$1}' );
}
function printInfo() {
value_in="$option";
iFs=( "$(echo -n $value_in|wc -m) == 0"
"$(echo -n $value_in|sed 's/--help//g'|wc -m) == 0"
"$(echo -n ${#reports[@]}) == 0" );
logic=( '"" "pIhelp"'
'"" "pIhelp"'
'"pIdf" "pIhelp"' );
function pIhelp() {
lEnd=0;
clear
echo
echo -e "install: debinstall.sh --install";
echo -e "uninstall: debinstall.sh --uninstall";
echo -e "help: debinstall.sh --help";
exit 0;
}
## default function last eXlogic..
function pIdf() {
for ((rpt_index=0; rpt_index != ${#reports[@]}; rpt_index++))
do
echo "${reports[$rpt_index]}";
done
exit 0;
}
eXlogic;
}
## -@F install 3proxy
function install() {
make -f Makefile.Linux
if [ ! -d "/etc/3proxy" ]
then
mkdir -p /etc/3proxy;
fi
cp $PWD/bin/3proxy /usr/bin/
adduser --system --no-create-home --disabled-login --group proxy3
chown proxy3:proxy3 /usr/bin/3proxy
iduser=$(id -u proxy3);
idgroup=$(id -g proxy3);
# config examples author Altavista375
touch /etc/3proxy/3proxy.cfg
echo -e '# Запускаем сервер от пользователя proxy3
# (возможно в вашей ОС uid и gid пользователя proxy3
# будут другими. Для их определения воспользуйтесь командой id proxy3)
setgid '"$idgroup"'
setuid '"$iduser"'
#
# Пропишите правильные серверы имен посмотрев их
# на своем сервере в /etc/resolv.conf
nserver 127.0.0.1
#
maxconn 2047
# Оставьте размер кэша для запросов DNS по умолчанию
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
log /var/log/3proxy/access.log
#logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
# It's squid log format, but it almost hides error messages (формат как у squid)
logformat "- +_G%t.%. %D %C TCP_MISS/200 %I %1-1T %2-2T %U DIRECT/%R application/unknown"
archiver gz /usr/bin/gzip %F
rotate 7
#
# Включаем авторизацию по логинам и паролям
#auth cache strong
#
# Конфигурация http(s) proxy
# Запускаем анонимный (-a) HTTP-proxy на порту (-p) 3128 и
# c отключенной NTLM-авторизацией (-n)
proxy -n -p3128 -a'>/etc/3proxy/3proxy.cfg
chown proxy3:proxy3 /etc/3proxy/3proxy.cfg
chmod 444 /etc/3proxy/3proxy.cfg
if [ ! -d "/var/log/3proxy" ]
then
mkdir -p /var/log/3proxy;
chown proxy3:proxy3 /var/log/3proxy
fi
# script starts 3proxy author Altavista375
touch /etc/init.d/3proxyinit
echo '#!/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'>/etc/init.d/3proxyinit;
chmod 0644 /etc/init.d/3proxyinit;
chmod +x /etc/init.d/3proxyinit;
if [[ $deb_release < 8 ]];
then
update-rc.d -n 3proxyinit defaults;
else
echo -e ' [Unit]
SourcePath=/etc/3proxy
Description=proxy
After=network-online.target
Wants=network-online.target
Conflicts=shutdown.target
[Service]
User=proxy3
Group=proxy3
GuessMainPID=no
Type=notify
NotifyAccess=all
RemainAfterExit=yes
WorkingDirectory=/etc/3proxy/
ExecStart=/etc/init.d/3proxyinit start
ExecStop=/etc/init.d/3proxyinit stop
ExecReload=/etc/init.d/3proxyinit restart
TimeoutSec=5min
[Install]
WantedBy=multi-user.target
'>/lib/systemd/system/3proxy.service;
systemctl daemon-reload
/bin/systemctl enable 3proxy.service;
fi
#
reports[${#reports[@]}]="3proxy install susseful";
writeToLog;
printInfo;
}
## -@F Uninstall 3proxy
function uninstall() {
if [[ $deb_release < 8 ]];
then
/etc/init.d/3proxyinit stop;
update-rc.d -n 3proxyinit remove;
else
/bin/systemctl stop 3proxy.service;
/bin/systemctl disable 3proxy.service;
rm /lib/systemd/system/3proxy.service;
systemctl daemon-reload;
fi
rm -f /etc/3proxy/3proxy.cfg;
rm -f /usr/bin/3proxy;
rm -rf /etc/3proxy;
deluser proxy3;
reports[${#reports[@]}]="3proxy uninstall susseful";
writeToLog;
printInfo;
}
##--@F executor
function executor() {
if [[ ${#execute_func[@]} -eq 0 ]]
then echo "exit";
exit 0;
fi
for ((ex_index=0; ex_index != ${#execute_func[@]}; ex_index++))
do
## !! debug operation...
##echo "execution: function ${execute_func[ex_index]}"
${execute_func[ex_index]};
done
}
##- Begin 3proxy
case "$option" in
## install 3proxy
"--install" | "--install" )
execute_func=( ${operation_install[@]} );
executor;
exit 0
;;
## uninstall 3proxy
"--uninstall" | "--uninstall" )
execute_func=( ${operation_uninstall[@]} );
executor;
exit 0
;;
## help
"--help" | "--help" )
execute_func=( ${operation_help[@]} );
executor;
exit 0
;;
* )
# selecting defaults.
execute_func=( ${operation_help[@]} );
executor;
exit 1
;;
esac
3. даем права на запуск
chmod +x debinstall.sh
4. запускаем скрипт, он может потребовать доустановить пакеты - соглашаемся. скрипт дает подсказку при простом запуске или с ключем --help
5. после установки правим конфигурационный файл /etc/3proxy/3proxy.cfg
Примеры можно посмотреть в папке с исходным кодом: ../3Proxy/cfg
* PS/ почему я написал свой скрипт установки?
Все просто, в установщике для Linux есть только установка под init.d, а в новых версиях уже везде systemd.
Так как я уже делал подобное, то просто адаптировал свой инталлятор для данной установки.
Использовать его или нет, вопрос важего желания. Мой скрипт как ставит так и чистит все корректно.
Проверено в работе на Debian 8,9.
ИСТОЧНИКИ:
