mirror of
https://github.com/Snowy-Fluffy/zapret.installer.git
synced 2025-12-12 01:10:09 +03:00
91 lines
3.1 KiB
Bash
91 lines
3.1 KiB
Bash
#!/bin/bash
|
||
|
||
if [ "$EUID" -eq 0 ]; then
|
||
SUDO=""
|
||
else
|
||
SUDO="sudo"
|
||
fi
|
||
|
||
if command -v pacman &> /dev/null; then
|
||
PKG_MANAGER="pacman"
|
||
INSTALL_CMD="$SUDO pacman -S --noconfirm"
|
||
elif command -v apt &> /dev/null; then
|
||
PKG_MANAGER="apt"
|
||
INSTALL_CMD="$SUDO apt-get install -y"
|
||
elif command -v dnf &> /dev/null; then
|
||
PKG_MANAGER="dnf"
|
||
INSTALL_CMD="$SUDO dnf install -y"
|
||
elif command -v zypper &> /dev/null; then
|
||
PKG_MANAGER="zypper"
|
||
INSTALL_CMD="$SUDO zypper install -y"
|
||
elif command -v opkg &> /dev/null; then
|
||
PKG_MANAGER="opkg"
|
||
INSTALL_CMD="$SUDO opkg install"
|
||
elif command -v apk &> /dev/null; then
|
||
PKG_MANAGER="apk"
|
||
INSTALL_CMD="$SUDO apk add"
|
||
else
|
||
echo "Не удалось определить пакетный менеджер. Убедитесь, что ваш дистрибутив поддерживается."
|
||
exit 1
|
||
fi
|
||
|
||
|
||
read -p "Вы хотите видеть логи установки? (y/n): " show_logs
|
||
if [ "$show_logs" == "y" ]; then
|
||
LOG_CMD="cat"
|
||
else
|
||
LOG_CMD="grep --line-buffered \"^\""
|
||
fi
|
||
|
||
$INSTALL_CMD git libnetfilter_queue | $LOG_CMD
|
||
|
||
echo "Выберите режим установки:"
|
||
echo "1) Автоматическая установка"
|
||
echo "2) Ручная установка (выбор параметров самостоятельно)"
|
||
read -p "Введите номер выбора (1 или 2): " install_mode
|
||
|
||
echo "Выберите вариант установки:"
|
||
echo "1) Установить чистый zapret"
|
||
echo "2) Установить zapret с конфигами"
|
||
read -p "Введите номер выбора (1 или 2): " choice
|
||
|
||
if [ -d /opt/zapret ]; then
|
||
$SUDO mv /opt/zapret /opt/zapret.old
|
||
fi
|
||
|
||
$SUDO git clone https://github.com/bol-van/zapret /opt/zapret | $LOG_CMD
|
||
cd /opt/zapret || exit 1
|
||
$SUDO chmod -R 777 /opt/zapret
|
||
|
||
if [ "$install_mode" -eq 1 ]; then
|
||
yes "" | $SUDO sh ./install_bin.sh | $LOG_CMD
|
||
yes "" | $SUDO sh ./install_prereq.sh | $LOG_CMD
|
||
yes "" | $SUDO sh ./install_easy.sh | $LOG_CMD
|
||
else
|
||
$SUDO sh ./install_bin.sh
|
||
$SUDO sh ./install_prereq.sh
|
||
$SUDO sh ./install_easy.sh
|
||
fi
|
||
|
||
if [ "$choice" -eq 2 ]; then
|
||
cd /tmp || exit 1
|
||
git clone https://github.com/Snowy-Fluffy/zapret.cfgs.git | $LOG_CMD
|
||
cd zapret.cfgs || exit 1
|
||
$SUDO cp -r config /opt/zapret/config
|
||
$SUDO cp -r zapret-hosts-user.txt /opt/zapret/ipset/zapret-hosts-user.txt
|
||
$SUDO cp -r zapret-hosts-auto.txt /opt/zapret/ipset/zapret-hosts-auto.txt
|
||
$SUDO cp -r ipset-discord.txt /opt/zapret/ipset/ipset-discord.txt
|
||
$SUDO cp -r quic_initial_www_google_com.bin /opt/zapret/files/fake/quic_initial_www_google_com.bin
|
||
$SUDO cp -r tls_clienthello_www_google_com.bin /opt/zapret/files/fake/tls_clienthello_www_google_com.bin
|
||
fi
|
||
|
||
if command -v systemctl &> /dev/null; then
|
||
$SUDO systemctl restart zapret
|
||
elif [ "$PKG_MANAGER" == "opkg" ]; then
|
||
$SUDO /etc/init.d/zapret restart
|
||
else
|
||
echo "Не удалось автоматически перезапустить zapret. Проверьте службу вручную."
|
||
fi
|
||
|
||
echo "Установка завершена."
|