Авторизация

Topic-icon Перезапуск интерфейса OpenVPN под OpenWRT

Больше
09 авг 2019 05:01 #4490 от UAN1706
UAN1706 создал эту тему: Перезапуск интерфейса OpenVPN под OpenWRT
На странице vpnki.ru/settings/router/settings-openwrt-vpn в абзаце ДОПОЛНЕНИЯ ОТ ПОЛЬЗОВАТЕЛЕЙ приведён метод перезапуска интерфейса при зависании. У меня эти отвалы почему то участились. Хочу сделать так же, но у меня OpenVPN. Не соображу как переделать строки: ifconfig pptp-pptp_vpnki down и
ifconfig pptp-pptp_vpnki up

У меня: интерфейс VPN с физ. интерфейсом tun0
vpnki_XXX - имя самого OpenVPN тоннеля

TP-Link 1043 v.2 c GoldenOrb 2019-03-10 Firmware

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

Больше
09 авг 2019 11:24 #4491 от admin
admin ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Думаю, что в вашем случае нужно перезапускать соединение OpenVPN и корректнее будет это делать не путем работы с интерфейсом, а перезапускать соединение (процесс).
Вы можете вместо ifconfig pptp-pptp_vpnki down, например, сделать sudo killall openvpn. Эта команда остановит все процессы openvpn и, соответственно, оборвет соединение.
А вот запустить соединение вновь можно командой sudo openvpn /etc/openvpn/vpnki.conf
Однако путь к конфигурационному файлу vpnki.conf в /etc/openvpn в вашем случае может быть другой.

если все заработало - нажмите на баннеры!

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

Больше
10 фев 2020 05:56 - 10 фев 2020 06:37 #5396 от UAN1706
UAN1706 ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Действительно, в командной строке консоли WinSCP команда
openvpn /etc/openvpn/vpnki.conf - запускает, а
killall openvpn - останавливает VPN
Из под консоли всё работает! Работает без sudo.

Но, сrone запускает rsvpn.sh (cron.info crond[16417]: USER root pid 16447 cmd root /root/rsvpn.sh), а эффекта нет, соединение не устанавливается. Файл rsvpn.sh - со свойствами 0755. Вот что в нём:

#!/bin/bash
PRS1="172.16.0.1"
if (! ping -q -c 3 ${PRS1} > /dev/null 2>&1)
then
openvpn /etc/openvpn/vpnki.conf
killall openvpn
fi

В чём может быть причина?
Последнее редактирование: 10 фев 2020 06:37 от UAN1706.

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

Больше
10 фев 2020 08:33 #5397 от admin
admin ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Не понимаю, ведь в скрипте подряд идут две команды:
openvpn /etc/openvpn/vpnki.conf
killall openvpn
Первая поднимает, а вторая сразу обрывает соединение? Какой смысл в этих командах?
Или я что-то не так понимаю?

если все заработало - нажмите на баннеры!

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

Больше
10 фев 2020 08:45 - 10 фев 2020 09:03 #5398 от UAN1706
UAN1706 ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Извиняюсь, это скопипастил неудачно :( В скрипте - сначала обрываем, потом поднимаем:

killall openvpn
openvpn /etc/openvpn/vpnki.conf

В сроке запуска в crone, кажется, перепробовал всё:
*/5 * * * * root /root/rsvpn.sh
*/5 * * * * bash /root/rsvpn.sh
*/5 * * * * /root/rsvpn.sh
Последнее редактирование: 10 фев 2020 09:03 от UAN1706.

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

Больше
10 фев 2020 09:26 #5399 от admin
admin ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Понятно, тут нужно траблшутить.
добавьте эти строки.
Вывод должен писать в файл /var/log/test.log, надеюсь, что такая директория там у вас существует и файл создастся

#!/bin/bash
echo "+++Start script" >> /var/log/test.log
date >> /var/log/test.log # а стартует ли скрипт?
whoami >> /var/log/test.log # от какого пользователя стартует скрипт?
PRS1="172.16.0.1"
if (! ping -q -c 3 ${PRS1} > /dev/null 2>&1)
echo $? >> /var/log/test.log # какой результат пинга?
then
ps -ef | grep openvpn >> /var/log/test.log # a работает ли openvpn сейчас?
killall openvpn
echo $? >> /var/log/test.log # прибили ли openvpn?
openvpn /etc/openvpn/vpnki.conf
echo $? >> /var/log/test.log # что же с новым соединением?
fi
echo "+++'Stop script" >> /var/log/test.log

если все заработало - нажмите на баннеры!

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

Больше
10 фев 2020 09:41 #5400 от UAN1706
UAN1706 ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Файл /var/log/test.log не создаётся.

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

Больше
10 фев 2020 09:45 #5401 от admin
admin ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Ааа... а такая директория вообще существует? Вы можете там создать этот файл руками?
Надо куда-то записать вывод скрипта, без этого тяжело что-то понять

если все заработало - нажмите на баннеры!

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

Больше
10 фев 2020 09:48 - 10 фев 2020 10:07 #5402 от UAN1706
UAN1706 ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Существует.
Создал. Права выставил.
Нового не пишется.

Подозрение, что cron не запускает *.sh
Вот в системном логе:
Mon Feb 10 16:48:00 2020 cron.info crond[7850]: USER root pid 7959 cmd root /root/rsvpn.sh
Mon Feb 10 16:49:00 2020 cron.info crond[7850]: USER root pid 7961 cmd root /root/rsvpn.sh

Сам cron работает, проверено, роутер сам себя перезапускает по расписанию.

Строки:
echo "+++Start script" >> /var/log/test.log
date >> /var/log/test.log # а стартует ли скрипт?
Работают из консоли, в файл пишется.
Последнее редактирование: 10 фев 2020 10:07 от UAN1706.

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

Больше
10 фев 2020 12:02 #5403 от admin
admin ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Тут мне сложно сказать, надо разбираться со стартом скриптов в кроне.
Что говорит команда crontab -l ?

если все заработало - нажмите на баннеры!

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

Больше
11 фев 2020 03:15 #5410 от UAN1706
UAN1706 ответил в теме Перезапуск интерфейса OpenVPN под OpenWRT
Всё, разобрался. Заработало.

В "запланированных заданиях" вид должен быть такой:
*/5 * * * * /root/rsvpn.sh

В скрипте первая строка должна быть такой:
#!/bin/sh

Источник: openwrt.org/docs/guide-developer/write-shell-script

Как у immortal это всё работало не понимаю (ДОПОЛНЕНИЯ ОТ ПОЛЬЗОВАТЕЛЕЙ vpnki.ru/settings/router/settings-openwrt-vpn ), потому как:
Scripts in OpenWrt should have #!/bin/sh at the first line, #!/bin/bash will not work.

Спасибо за помощь.

ЗЫ. Иногда приходится перегружать весь куст OpenVPN. Но,думаю, это больше вопрос к опсосам.

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