2024-12-24 21:39:52 +03:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
2024-12-27 17:06:20 +03:00
|
|
|
|
if [ "$EUID" -eq 0 ]; then
|
|
|
|
|
|
SUDO=""
|
|
|
|
|
|
else
|
|
|
|
|
|
SUDO="sudo"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2024-12-24 21:39:52 +03:00
|
|
|
|
if command -v pacman &> /dev/null; then
|
|
|
|
|
|
PKG_MANAGER="pacman"
|
2024-12-27 17:06:20 +03:00
|
|
|
|
INSTALL_CMD="$SUDO pacman -S --noconfirm"
|
2024-12-24 21:39:52 +03:00
|
|
|
|
elif command -v apt &> /dev/null; then
|
|
|
|
|
|
PKG_MANAGER="apt"
|
2024-12-27 17:06:20 +03:00
|
|
|
|
INSTALL_CMD="$SUDO apt-get install -y"
|
2024-12-24 21:39:52 +03:00
|
|
|
|
elif command -v dnf &> /dev/null; then
|
|
|
|
|
|
PKG_MANAGER="dnf"
|
2024-12-27 17:06:20 +03:00
|
|
|
|
INSTALL_CMD="$SUDO dnf install -y"
|
2024-12-24 21:39:52 +03:00
|
|
|
|
elif command -v zypper &> /dev/null; then
|
|
|
|
|
|
PKG_MANAGER="zypper"
|
2024-12-27 17:06:20 +03:00
|
|
|
|
INSTALL_CMD="$SUDO zypper install -y"
|
2024-12-24 21:39:52 +03:00
|
|
|
|
elif command -v opkg &> /dev/null; then
|
|
|
|
|
|
PKG_MANAGER="opkg"
|
2024-12-27 17:06:20 +03:00
|
|
|
|
INSTALL_CMD="$SUDO opkg install"
|
2024-12-24 21:39:52 +03:00
|
|
|
|
elif command -v apk &> /dev/null; then
|
|
|
|
|
|
PKG_MANAGER="apk"
|
2024-12-27 17:06:20 +03:00
|
|
|
|
INSTALL_CMD="$SUDO apk add"
|
2024-12-24 21:39:52 +03:00
|
|
|
|
else
|
|
|
|
|
|
echo "Не удалось определить пакетный менеджер. Убедитесь, что ваш дистрибутив поддерживается."
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2024-12-27 17:06:20 +03:00
|
|
|
|
|
|
|
|
|
|
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
|
2024-12-24 21:39:52 +03:00
|
|
|
|
|
|
|
|
|
|
echo "Выберите вариант установки:"
|
|
|
|
|
|
echo "1) Установить чистый zapret"
|
|
|
|
|
|
echo "2) Установить zapret с конфигами"
|
|
|
|
|
|
read -p "Введите номер выбора (1 или 2): " choice
|
|
|
|
|
|
|
2024-12-27 17:06:20 +03:00
|
|
|
|
if [ -d /opt/zapret ]; then
|
2024-12-31 14:00:59 +03:00
|
|
|
|
$SUDO rm -rf /opt/zapret.old
|
2024-12-27 17:06:20 +03:00
|
|
|
|
$SUDO mv /opt/zapret /opt/zapret.old
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2024-12-31 14:00:59 +03:00
|
|
|
|
if [ "$choice" -eq 2 ]; then
|
|
|
|
|
|
cd /tmp || exit 1
|
|
|
|
|
|
git clone https://github.com/Snowy-Fluffy/zapret.cfgs.git | $LOG_CMD
|
|
|
|
|
|
cd /tmp/zapret.cfgs || exit 1
|
|
|
|
|
|
tar -xf binaries.tar
|
|
|
|
|
|
fi
|
2024-12-27 17:06:20 +03:00
|
|
|
|
$SUDO git clone https://github.com/bol-van/zapret /opt/zapret | $LOG_CMD
|
2024-12-24 21:39:52 +03:00
|
|
|
|
cd /opt/zapret || exit 1
|
2024-12-31 14:00:59 +03:00
|
|
|
|
if [ "$choice" -eq 2 ]; then
|
|
|
|
|
|
$SUDO cp -r /tmp/zapret.cfgs/binaries /opt/zapret/binaries
|
|
|
|
|
|
fi
|
2024-12-27 17:06:20 +03:00
|
|
|
|
$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
|
2024-12-24 21:39:52 +03:00
|
|
|
|
|
|
|
|
|
|
if [ "$choice" -eq 2 ]; then
|
2024-12-31 14:00:59 +03:00
|
|
|
|
cd /tmp/zapret.cfgs || exit 1
|
2024-12-27 17:06:20 +03:00
|
|
|
|
$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
|
2024-12-24 21:39:52 +03:00
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if command -v systemctl &> /dev/null; then
|
2024-12-27 17:06:20 +03:00
|
|
|
|
$SUDO systemctl restart zapret
|
2024-12-24 21:39:52 +03:00
|
|
|
|
elif [ "$PKG_MANAGER" == "opkg" ]; then
|
2024-12-27 17:06:20 +03:00
|
|
|
|
$SUDO /etc/init.d/zapret restart
|
2024-12-24 21:39:52 +03:00
|
|
|
|
else
|
|
|
|
|
|
echo "Не удалось автоматически перезапустить zapret. Проверьте службу вручную."
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "Установка завершена."
|