Авторизация

Перезапуск OpenVPN по API

Подробнее
2 года 8 мес. назад - 2 года 8 мес. назад #19 от Mast
Mast ответил в теме Не пингуется vpn
ВАРИАНТ РЕШЕНИЯ ПРОБЛЕМЫ ЗАВИСШИХ НА САЙТЕ СЕССИЙ для OpenWRT

#!/bin/sh
PRS1="172.16.0.1"
if (! ping -q -c 3 ${PRS1} > /dev/null 2>&1)
then
wget-ssl --no-check-certificate --spider 'https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=01234567890123456789' > /dev/null
ifdown ovpn
sleep 10
ifup ovpn
route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.0.1
route add -net 192.168.XX.0 netmask 255.255.255.0 gw 172.16.xx.xx
sleep 30
/etc/init.d/led restart
fi


Cкрипт перегруза интерфейса и сервера по отсутствию пинга на туннель
Этот вариант через WGET
(так же возможен очень похожий вариант через CURL)

1.
Сперва в нем 3 раза выполняется пинг на туннель.
если пинга нет (скажем, завис интерфейс на сайте), то:

2.
выполняется сброс туннеля на сервере через API функцию.
для выполнения этого сброса надо поставить пакет wget
ставим пакет wget
opkg update
opkg install wget
тут есть нюанс!
в openWRT уже присутствует wget как symlink на busybox
нам он не нужен, а нужен нам именно отдельный пакет.
после установки пакета wget к нему надо обращаться как wget-ssl
(а обращение к symlink на busybox будет через wget, но оно нам НЕ надо)
что есть что поможет разобраться команда:
ls -la $(which wget)

сброс туннеля через wget-ssl с ключами --no-check-certificate --spider
(не-проверка сертификата httpS , spider - это просто проверка наличия записи на сервере, без скачивания)
не забываем прописать в скрипт СВОЙ ВАЛИДНЫЙ ключ API с сайта VPNKI

3.
выключаем интерфейс OpenVPN, именно по имени интерфейса (то, что у вас прописано вместо ovpn, а не по имени девайса, т.е. НЕ как tun0)

4.
включаем интерфейс OpenVPN

5.
восстанавливаем стат. маршруты, т.к. они слетят после манипуляций с интерфейсом.
вместо 192.168.ХХ.0 указываем вашу удаленную сеть, вместо 172.16.хх.хх - ваш гейт со страницы настроек на сайте VPNKI

6.
если переназначали светодиоды в роутере, то возвращаем их нормальную работу через led restart

Данный скрипт у меня выполняется раз в 3мин по шэдулеру.
Работает устойчиво. При ручной эмуляции проблемы зависших сессии данный скрипт перегружает туннели без проблем.
Как проявит себя при возможных зависаниях сессий на сервере - покажет время.
Последнее редактирование: 2 года 8 мес. назад пользователем Mast.
Спасибо сказали: admin

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
2 года 8 мес. назад #20 от admin
admin ответил в теме Не пингуется vpn
Спасибо за инструкцию!
Увы, у меня нет всяких WRT, поэтому не смогу потестировать, но думаю, что желающие найдутся.

если все заработало, то, пожалуйста, donate сюда - yoomoney.ru/to/410014618210530

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.079 секунд