Answers:
从18.10开始(无法检入较早版本),NetworkManager中的VPN连接具有vpn.persistent
仅用于以下目的的设置:连接断开时重新连接至VPN,直到您手动断开连接为止。它"no"
默认设置为,不幸的是,既不在Gnome网络设置中也不在nm-connection-editor中公开。
但是您可以通过如下CLI进行设置:
nmcli connection modify <Your VPN connection name> vpn.persistent yes
当然,连接必须先存在
OpenVPN具有内置机制,可以自动检测死链接并重新连接。在网络管理器中,转到“编辑连接”,选择您的VPN连接,然后选择“编辑”。在“ VPN”选项卡中,单击“高级...”,然后转到“常规”选项卡。那里有两个相关选项:
“指定ping间隔”告诉OpenVPN多久检查一次链接是否仍然有效。“指定退出或重新启动ping”指定了等待多长时间才能采取措施以及采取哪种措施。
示例:我的设置是“ 30 / ping-重启/ 300”。这意味着OpenVPN每30秒检查一次链接是否仍处于活动状态。如果链接断开300秒钟,它将启动重新启动。
这样就不需要外部脚本了。
vpn.persistent
为yes
)。
此脚本将在nmcli con status
不再适用的16.04上运行:
#!/bin/bash
CON="purple"
STATUS=`nmcli con show --active | grep purple | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
nmcli con up $CON
fi
STATUS="$(nmcli con show -f name | grep purple)"
。或者您可以通过执行以下操作简单地检查实际连接是否处于活动状态nmcli con show --active id 'purple'
我认为基于其他答案的完整答案如下:
#!/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