我是 Ubuntu GNOME 用户,我想知道是否有办法断开连接时自动重新连接到 VPN。我正在使用OpenVPN协议。
我已经彻底检查了网络管理器,但找不到这样的选项,只能在连接到特定 WiFi 时连接到 VPN。
答案1
从 18.10 开始(无法在早期版本中检查)NetworkManager 中的 VPN 连接有一个设置vpn.persistent
,其作用就是:在连接丢失时重新连接到 VPN,直到您手动断开连接。默认情况下设置为此设置"no"
,但遗憾的是,Gnome 网络设置和 nm-connection-editor 中均未显示此设置。
但您可以通过如下 CLI 进行设置:
nmcli connection modify <Your VPN connection name> connection.autoconnect-retries 0
nmcli connection modify <Your VPN connection name> vpn.persistent yes
当然,在执行此操作之前,连接必须存在。这autoconnect-retries 0
实际上意味着“永远重试”。
另请注意,这些设置偶尔会被重置,可能是由于 NetworkManager 或相关软件包的更新,因此您需要检查它们并进行更正。
来源:
答案2
OpenVPN 有一个内置机制,可以自动检测死链接并重新连接。在网络管理器中,转到“编辑连接”,选择您的 VPN 连接并选择“编辑”。在“VPN”选项卡中,单击“高级...”,然后转到“常规”选项卡。那里有两个相关选项:
“指定 ping 间隔”告诉 OpenVPN 检查链接是否仍然有效的频率。“指定退出或重新启动 ping”告诉它要等待多长时间才能采取行动以及要采取什么行动。
例如:我的设置是“30 / ping-restart / 300”。这意味着 OpenVPN 每 30 秒检查一次链接是否仍然有效。如果链接断开 300 秒,它将启动重新启动。
这样就不需要外部脚本了......
答案3
经过一番挖掘,我发现这个答案,对其进行了测试(在 Ubuntu GNOME 15.04 上),到目前为止它似乎可以正常工作。
我唯一想补充的是,脚本文件创建后不一定需要保存到 /home 文件夹。您可以将其保存在任何位置,使其可执行,然后将其添加到启动程序列表中。
答案4
在声称这是 SMOP(简单编程问题)之后,我编写了一个 bash 脚本,用于监视“链接断开”,然后执行用户脚本。与该while true....sleep 30
方法相比,CPU 使用率更低,响应速度更快。请参阅我的回答这里。这是关于“轮换 WiFi 连接”的,但可能也适合你