Last active
February 12, 2025 23:11
-
-
Save dartraiden/283c36bcee72a2e16d93672af13d58b0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Все действия выполняются в консоли Entware | |
- ставим требуемые пакеты: | |
opkg update && opkg install cron flock | |
- создаём файл /opt/etc/cron.1min/antizapret-restart (см. ниже) | |
OpenVPN0 - имя интерфейса АнтиЗапрета, можно посмотреть командой ndmc -c show interface | |
- перезапускаем крон: | |
/opt/etc/init.d/S10cron restart |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
PIDFILE="/tmp/antizapret.pid" | |
INTERFACE="OpenVPN0" | |
DOMAIN1="google.com" | |
DOMAIN2="vk.com" | |
DOMAIN3="wikipedia.org" | |
DOMAIN4="yandex.ru" | |
# проверям, не запущен ли уже скрипт, чтобы не запускать его, если предыдущая копия ещё не закончила работу | |
exec 200>$PIDFILE | |
flock -n 200 || exit 1 | |
PID=$$ | |
echo $PID 1>&200 | |
while true; do | |
# проверяем, актвно ли подключение АнтиЗапрета (например, если пользователь специально его отключил, то не стоит его переподключать) | |
if ! (ndmc -c show interface $INTERFACE | grep "state: up") > /dev/null 2>&1; then | |
exit 1 | |
fi | |
# пингуем домены, если хоть один пинг успешен, то DNS-сервер резолвит, следовательно, не висит и нет необходимости что-то делать | |
if ping -c 1 $DOMAIN1 > /dev/null 2>&1; then | |
exit 0 | |
fi | |
if ping -c 1 $DOMAIN2 > /dev/null 2>&1; then | |
exit 0 | |
fi | |
if ping -c 1 $DOMAIN3 > /dev/null 2>&1; then | |
exit 0 | |
fi | |
if ping -c 1 $DOMAIN4 > /dev/null 2>&1; then | |
exit 0 | |
fi | |
# все домены недоступны - переподключаем АнтиЗапрет | |
logger "AntiZapret DNS is down. Restarting interface..." | |
ndmc -c interface $INTERFACE down | |
sleep 5 | |
ndmc -c interface $INTERFACE up | |
# немного ждём и повторяем всё с начала | |
sleep 5 | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment