mirror of
https://github.com/Snowy-Fluffy/zapret.installer.git
synced 2025-12-13 12:33:02 +03:00
119 lines
4.2 KiB
Bash
119 lines
4.2 KiB
Bash
#!/bin/bash
|
||
|
||
set -e
|
||
|
||
if [[ $EUID -ne 0 ]]; then
|
||
exec sudo "$0" "$@"
|
||
fi
|
||
|
||
|
||
check_zapret_status() {
|
||
systemctl is-active --quiet zapret && ZAPRET_ACTIVE=true || ZAPRET_ACTIVE=false
|
||
systemctl is-enabled --quiet zapret && ZAPRET_ENABLED=true || ZAPRET_ENABLED=false
|
||
}
|
||
|
||
|
||
main_menu() {
|
||
while true; do
|
||
clear
|
||
check_zapret_status
|
||
echo "===== Меню управления Запретом ====="
|
||
if [[ $ZAPRET_ACTIVE == true ]]; then echo "!Запрет запущен!"; fi
|
||
if [[ $ZAPRET_ACTIVE == false ]]; then echo "!Запрет выключен!"; fi
|
||
if [[ -d /opt/zapret ]]; then
|
||
echo "1) Проверить на обновления"
|
||
echo "2) Сменить конфигурацию"
|
||
echo "3) Перезапустить Запрет"
|
||
echo "4) Посмотреть статус Запрета"
|
||
if [[ $ZAPRET_ENABLED == false ]]; then echo "5) Добавить в автозагрузку"; fi
|
||
if [[ $ZAPRET_ACTIVE == false ]]; then echo "6) Включить Запрет"; fi
|
||
if [[ $ZAPRET_ENABLED == true ]]; then echo "7) Убрать из автозагрузки"; fi
|
||
if [[ $ZAPRET_ACTIVE == true ]]; then echo "8) Выключить Запрет"; fi
|
||
echo "9) Удалить Запрет"
|
||
echo "10) Выйти"
|
||
read -p "Выберите действие: " CHOICE
|
||
case "$CHOICE" in
|
||
1) update_zapret;;
|
||
2) configure_zapret;;
|
||
3) systemctl restart zapret;;
|
||
4) systemctl status zapret; read -p "Нажмите Enter для продолжения...";;
|
||
5) systemctl enable zapret;;
|
||
6) systemctl start zapret;;
|
||
7) systemctl disable zapret;;
|
||
8) systemctl stop zapret;;
|
||
9) uninstall_zapret;;
|
||
10) exit 0;;
|
||
*) echo "Неверный ввод!"; sleep 2;;
|
||
esac
|
||
else
|
||
echo "1) Установить Запрет"
|
||
echo "2) Выйти"
|
||
read -p "Выберите действие: " CHOICE
|
||
case "$CHOICE" in
|
||
1) install_zapret; main_menu;;
|
||
2) exit 0;;
|
||
*) echo "Неверный ввод!"; sleep 2;;
|
||
esac
|
||
fi
|
||
done
|
||
}
|
||
|
||
|
||
install_zapret() {
|
||
|
||
git clone https://github.com/bol-van/zapret /opt/zapret
|
||
git clone https://github.com/Snowy-Fluffy/zapret.cfgs /opt/zapret/zapret.cfgs
|
||
cp -r /opt/zapret/zapret.cfgs/binaries/binaries /opt/zapret/binaries/
|
||
# Бинарники скомпилированные чтобы избежать лишних проблем у новичков, если боишься что с ними что то не так, сотри эту строчку и запусти скрипт еще раз, зависимости для компиляции устанавливаются
|
||
cd /opt/zapret
|
||
yes "" | ./install_easy.sh
|
||
configure_zapret
|
||
}
|
||
|
||
|
||
update_zapret() {
|
||
if [[ -d /opt/zapret ]]; then
|
||
cd /opt/zapret && git pull
|
||
fi
|
||
if [[ -d /opt/zapret/zapret.cfgs ]]; then
|
||
cd /opt/zapret/zapret.cfgs && git pull
|
||
fi
|
||
systemctl restart zapret
|
||
}
|
||
|
||
# Настройка конфигурации
|
||
configure_zapret() {
|
||
if [[ ! -d /opt/zapret/zapret.cfgs ]]; then
|
||
git clone https://github.com/Snowy-Fluffy/zapret.cfgs /opt/zapret/zapret.cfgs
|
||
fi
|
||
cp /opt/zapret/zapret.cfgs/lists/* /opt/zapret/ipset/
|
||
cp /opt/zapret/zapret.cfgs/binaries/* /opt/zapret/files/fake/
|
||
|
||
echo "Выберите конфигурацию:"
|
||
select CONF in /opt/zapret/zapret.cfgs/configurations/*; do
|
||
rm -f /opt/zapret/config
|
||
cp "$CONF" /opt/zapret/config
|
||
break
|
||
done
|
||
|
||
# Проверка firewall
|
||
if grep -q "nftables" /proc/modules; then
|
||
sed -i '11s/.*/FWTYPE=nftables/' /opt/zapret/config
|
||
fi
|
||
|
||
systemctl restart zapret
|
||
}
|
||
|
||
|
||
uninstall_zapret() {
|
||
if [[ -f /opt/zapret/uninstall_easy.sh ]]; then
|
||
cd /opt/zapret
|
||
yes "" | ./uninstall_easy.sh
|
||
fi
|
||
rm -rf /opt/zapret
|
||
}
|
||
|
||
# Запуск главного меню
|
||
main_menu
|
||
|