Я - пользователь GNOME Ubuntu, и я задавался вопросом, существует ли способ смочь автоматически снова соединиться с VPN на разъединении. Я использую протокол OpenVPN.
Я проверил Администратора сети полностью, но не мог найти, что такая опция, только соединилась с VPN, при соединении с определенным WiFi.
OpenVPN имеет встроенный механизм для автоматического обнаружения неработающих каналов и повторного подключения. В Network Manager перейдите к «Редактировать соединения», выберите ваше VPN-соединение и выберите «Редактировать». На вкладке «VPN» нажмите «Дополнительно ...» и перейдите на вкладку «Общие». Там у вас есть две соответствующие опции:
«Указать интервал проверки связи» сообщают OpenVPN, как часто нужно проверять, жива ли ссылка. «Укажите ping при выходе или при перезапуске» указывает, как долго ждать, пока оно предпримет действие, и какое действие предпринять.
Пример: мои настройки «30 / ping-restart / 300». Это означает, что OpenVPN каждые 30 секунд проверяет, активна ли ссылка. Если ссылка не работает в течение 300 секунд, она инициирует перезапуск.
Таким образом, нет необходимости во внешних скриптах ...
После небольшого поиска я нашел этот ответ , проверил его (на Ubuntu GNOME 15.04) и пока он работает.
Единственное, что я могу добавить, это то, что после создания файла сценария его не обязательно сохранять в папке / home. Вы можете сохранить его где угодно, сделать его исполняемым и добавить его в список запускаемых программ.
По состоянию на 18.10 (не может проверить в более ранних версиях) VPN-соединения в NetworkManager имеют настройку vpn.persistent
, которая делает именно это: переподключается к VPN при потере соединения, пока вы не отключите вручную. По умолчанию он установлен на "no"
и, к сожалению, не отображается ни в настройках сети Gnome, ни в nm-connection-editor.
Но вы можете установить его через CLI следующим образом:
nmcli connection modify <Your VPN connection name> vpn.persistent yes
Соединение должно существовать до того, как вы это сделаете, конечно
После заявления о том, что это был SMOP (Simple Matter of Programming), я написал скрипт bash, который отслеживает «Link Down», а затем выполняет скрипт пользователя. Меньшее использование процессора, более отзывчивый, чем метод while true....sleep 30
. Смотрите мой ответ в здесь . Речь идет о «вращающихся соединениях WiFi», но, вероятно, будет работать и для вас
Я думаю, что полный ответ на основе других ответов идет следующим образом:
#!/bin/bash +x
while [ "true" ]
do
CON="Your-VPN-Name"
STATUS=`nmcli con show --active | grep $CON | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
echo "Disconnected, trying to reconnect..."
(sleep 1s && nmcli con up $CON)
else
echo "Already connected !"
fi
sleep 30
done
этот сценарий будет работать над 16,04 где nmcli con status
больше работы:
#!/bin/bash
CON="purple"
STATUS=`nmcli con show --active | grep purple | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
nmcli con up $CON
fi