Если по каким-то причинам роутер сам не в состоянии отследить, что возникли проблемы с подключением по VPN, то можно воспользоваться следующим вариантом:
1. Создаем необходимые файлы:
mkdir -p /usr/local/sbin/
touch /usr/local/sbin/ping.sh
touch /usr/local/sbin/connector
chmod +x /usr/local/sbin/*
2. Заполняем их данными:
nano /usr/local/sbin/ping.sh
#!/bin/sh
PINGADRESS=www.google.ru
ping -c 1 -w 10 $PINGADRESS > /dev/null
if [ $? != 0 ]; then
/usr/local/sbin/connector disconnect
# Не уверен, но вроде как должно все само подняться после дисконнекта.
# Если подниматься само не будет, раскомментировать нижние 2 строчки.
# sleep 5
# /usr/local/sbin/connector connect
fi
sleep 30
exit
nano /usr/local/sbin/connector
#!/bin/sh
case $1 in
connect)
service="wan_connect"
;;
disconnect)
service="wan_disconnect"
;;
*)
echo "Usage: $(basename $0) connect|disconnect"
exit 1
;;
esac
let unit=1*$(nvram get wan_unit)
if [ $unit -lt 0 ]; then
unit=0
fi
nvram set rc_service="$service,$unit"
kill -SIGUSR1 1
sleep 2
3. Делаем автозапуск:
Добавить в файл /usr/local/sbin/post-boot следующую строчку:
/usr/local/sbin/ping.sh &
4. Финальное:
flashfs save && flashfs commit && flashfs enable && reboot
Данная инструкция создана применительно к моей инструкции с нуля.