mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-17 04:22:59 +03:00
easy install on debian/ubuntu for dummies
This commit is contained in:
parent
35774c04c6
commit
5f3c334453
119
install_debian_easy.sh
Normal file
119
install_debian_easy.sh
Normal file
@ -0,0 +1,119 @@
|
||||
#!/bin/sh
|
||||
|
||||
# automated script for easy installing zapret on debian or ubuntu based system
|
||||
# system must use apt as package manager and systemd
|
||||
|
||||
[ $(id -u) -ne "0" ] && {
|
||||
echo root is required
|
||||
exec sudo $0
|
||||
}
|
||||
|
||||
SCRIPT=$(readlink -f $0)
|
||||
EXEDIR=$(dirname $SCRIPT)
|
||||
LSB_INSTALL=/usr/lib/lsb/install_initd
|
||||
LSB_REMOVE=/usr/lib/lsb/remove_initd
|
||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/debian/zapret
|
||||
INIT_SCRIPT=/etc/init.d/zapret
|
||||
GET_IPLIST=$EXEDIR/ipset/get_antizapret.sh
|
||||
GET_IPLIST_PREFIX=$EXEDIR/ipset/get_
|
||||
|
||||
echo \* checking system ...
|
||||
|
||||
APTGET=$(which apt-get)
|
||||
SYSTEMCTL=$(which systemctl)
|
||||
[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && {
|
||||
echo not debian-like system
|
||||
exit 5
|
||||
}
|
||||
|
||||
|
||||
echo \* installing prerequisites ...
|
||||
|
||||
"$APTGET" update
|
||||
"$APTGET" install -y --no-install-recommends ipset curl lsb-core dnsutils || {
|
||||
echo could not install prerequisites
|
||||
exit 6
|
||||
}
|
||||
|
||||
[ ! -x "$LSB_INSTALL" ] || [ ! -x "$LSB_REMOVE" ] && {
|
||||
echo lsb install scripts not found
|
||||
exit 7
|
||||
}
|
||||
|
||||
|
||||
echo \* installing binaries ...
|
||||
|
||||
"$EXEDIR/install_bin.sh"
|
||||
|
||||
|
||||
echo \* installing init script ...
|
||||
|
||||
"$SYSTEMCTL" stop zapret 2>/dev/null
|
||||
|
||||
script_mode=Y
|
||||
[ -f "$INIT_SCRIPT" ] &&
|
||||
{
|
||||
cmp -s $INIT_SCRIPT $INIT_SCRIPT_SRC ||
|
||||
{
|
||||
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC
|
||||
echo Y = overwrite with new version
|
||||
echo N = exit
|
||||
echo L = leave current version and continue
|
||||
read script_mode
|
||||
case "${script_mode}" in
|
||||
Y|y|L|l)
|
||||
;;
|
||||
*)
|
||||
echo aborted
|
||||
;;
|
||||
esac
|
||||
}
|
||||
}
|
||||
|
||||
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then
|
||||
echo -n "copying : "
|
||||
cp -vf $INIT_SCRIPT_SRC $INIT_SCRIPT
|
||||
fi
|
||||
|
||||
|
||||
echo \* registering init script ...
|
||||
|
||||
"$LSB_REMOVE" $INIT_SCRIPT
|
||||
"$LSB_INSTALL" $INIT_SCRIPT || {
|
||||
echo could not register $INIT_SCRIPT with LSB
|
||||
exit 20
|
||||
}
|
||||
|
||||
|
||||
echo \* downloading blocked ip list ...
|
||||
|
||||
"$GET_IPLIST" || {
|
||||
echo could not download ip list
|
||||
exit 25
|
||||
}
|
||||
|
||||
|
||||
echo \* adding crontab entry ...
|
||||
|
||||
CRONTMP=/tmp/cron.tmp
|
||||
crontab -l >$CRONTMP
|
||||
if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then
|
||||
echo some entries already exist in crontab. check if this is corrent :
|
||||
grep "$GET_IPLIST_PREFIX" $CRONTMP
|
||||
else
|
||||
echo "0 12 * * */2 $GET_IPLIST" >>$CRONTMP
|
||||
crontab $CRONTMP
|
||||
fi
|
||||
|
||||
rm -f $CRONTMP
|
||||
|
||||
|
||||
echo \* starting zapret service ...
|
||||
|
||||
systemctl start zapret || {
|
||||
echo could not start zapret service
|
||||
exit 30
|
||||
}
|
||||
|
||||
exit 0
|
||||
|
25
readme.txt
25
readme.txt
@ -245,7 +245,7 @@ TPWS_OPT="--hostspell=HOST --split-http-req=method"
|
||||
название внутреннего сетевого интерфейса (LAN).
|
||||
|
||||
Зарегистрировать init скрипт в systemd :
|
||||
/usr/lib/lsb/install_initd zapret
|
||||
/usr/lib/lsb/install_initd /etc/init.d/zapret
|
||||
|
||||
Вручную первый раз получить новый список ip адресов (кроме hostlist) :
|
||||
/opt/zapret/ipset/get_antizapret.sh
|
||||
@ -286,6 +286,29 @@ stop : systemctl stop zapret
|
||||
status, output messages : systemctl status zapret
|
||||
После изменения /etc/init.d/zapret : systemctl daemon-reload
|
||||
|
||||
Пример установки на debian 8,9 ubuntu 16,18 для чайников
|
||||
--------------------------------------------------------
|
||||
|
||||
Ты простой юзер ? Не хочешь ни во что вникать, а хочешь нажать и чтобы сразу заработало ?
|
||||
Пользуешься ubuntu или debian ? Тогда этот вариант для тебя.
|
||||
Есть шансы, что оно заработает с минимумом усилий. Запусти терминал и в нем вбивай команды :
|
||||
|
||||
# sudo apt-get update
|
||||
# sudo apt-get install git
|
||||
# cd /opt
|
||||
# sudo git clone https://github.com/bol-van/zapret
|
||||
# zapret/install_debian_easy.sh
|
||||
|
||||
sudo попросит пароль текущего юзера для получения рута
|
||||
|
||||
Надоело ?
|
||||
|
||||
# /opt/zapret/uninstall_debian_easy.sh
|
||||
# sudo rm -r /opt/zapret
|
||||
|
||||
Скрипты простой установки могут быть удобны и для нечайников для первоначальной установки,
|
||||
после которой можно поправить настройки вручную. Так устанавливать быстрее.
|
||||
|
||||
Другие linux системы
|
||||
--------------------
|
||||
|
||||
|
66
uninstall_debian_easy.sh
Normal file
66
uninstall_debian_easy.sh
Normal file
@ -0,0 +1,66 @@
|
||||
#!/bin/sh
|
||||
|
||||
# automated script for easy installing zapret on debian or ubuntu based system
|
||||
# system must use apt as package manager and systemd
|
||||
|
||||
[ $(id -u) -ne "0" ] && {
|
||||
echo root is required
|
||||
exec sudo $0
|
||||
}
|
||||
|
||||
SCRIPT=$(readlink -f $0)
|
||||
EXEDIR=$(dirname $SCRIPT)
|
||||
LSB_INSTALL=/usr/lib/lsb/install_initd
|
||||
LSB_REMOVE=/usr/lib/lsb/remove_initd
|
||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/debian/zapret
|
||||
INIT_SCRIPT=/etc/init.d/zapret
|
||||
GET_IPLIST_PREFIX=$EXEDIR/ipset/get_
|
||||
|
||||
echo \* checking system ...
|
||||
|
||||
APTGET=$(which apt-get)
|
||||
SYSTEMCTL=$(which systemctl)
|
||||
[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && {
|
||||
echo not debian-like system
|
||||
exit 5
|
||||
}
|
||||
|
||||
|
||||
echo \* stopping service and unregistering init script with LSB ...
|
||||
|
||||
"$SYSTEMCTL" stop zapret
|
||||
[ -f "$INIT_SCRIPT" ] && "$LSB_REMOVE" $INIT_SCRIPT
|
||||
|
||||
echo \* removing init script ...
|
||||
|
||||
script_mode=Y
|
||||
[ -f "$INIT_SCRIPT" ] &&
|
||||
{
|
||||
cmp -s $INIT_SCRIPT $INIT_SCRIPT_SRC ||
|
||||
{
|
||||
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC
|
||||
echo Y = remove it
|
||||
echo L = leave it
|
||||
read script_mode
|
||||
}
|
||||
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then
|
||||
rm -vf $INIT_SCRIPT
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
echo \* removing crontab entry ...
|
||||
|
||||
CRONTMP=/tmp/cron.tmp
|
||||
crontab -l >$CRONTMP
|
||||
if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then
|
||||
echo removing following entries from crontab :
|
||||
grep "$GET_IPLIST_PREFIX" $CRONTMP
|
||||
grep -v "$GET_IPLIST_PREFIX" $CRONTMP >$CRONTMP.2
|
||||
crontab $CRONTMP.2
|
||||
rm -f $CRONTMP 2
|
||||
fi
|
||||
rm -f $CRONTMP
|
||||
|
||||
exit 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user