Как обнаружить отключение VPN с помощью vpnc?
Какой самый простой способ обнаружить, что соединение vpnc в Linux/Ubuntu отключено?
Вручную, я думаю, что способ обнаружения - это проверить, отображается ли интерфейс (tun0) в выходных данных /sbin/ifconfig. Есть ли лучший способ выяснить это немедленно, чтобы можно было запустить скрипт для перезапуска соединения?
4 ответа
Сценарий /etc/vpnc/vpnc-script
вызывается при различных событиях, включая подключение и отключение.
Похоже, вы используете Ubuntu или Debian. Если вы, сценарии
/etc/vpnc/vpnc-script-disconnect-action
а также
/etc/vpnc/vpnc-script-post-disconnect-action
призваны к соответствующим событиям. Вы можете создавать эти файлы, если они не существуют, и помещать туда любую логику, какую захотите.
Если вы не используете дистрибутив на основе Debian с этими подскриптами, вы можете изменить /etc/vpnc/vpnc-script
непосредственно добавить любую логику, которую вы хотите.
Если у вас будет логика для повторного вызова vpnc-connect, я рекомендую как-то отключить это от сценария отсоединения, чтобы вы не оказались в бесконечном цикле.
Я использую cron, чтобы позаботиться об этом, чтобы я мог легко изменить его, не вспоминая, какой скрипт я редактировал Работа cron ниже.
* / 15 * * * * [[-d / sys / devices / virtual / net / tun0]] || / usr / sbin / vpnc /etc/vpnc/yourconf.conf
Обычно VPN-соединение не должно прерываться так часто. В вашем случае вы можете сначала попытаться диагностировать реальную проблему с подключением, вместо того чтобы писать сценарии для автоматического подключения к vpn при отключении.
Ниже работал для меня:
/ sbin / ifconfig | / bin / grep -q tun0 || sudo / usr / sbin / vpnc-connect