我花了几个小时尝试通过 if-up.d 方法实现此目的,如下所述:问题 258580
该脚本无法触发,我意识到这种方法已经过时了,因为 Ubuntu 不再使用 etc/network/interfaces - 自 v. 17.10 以来我们正在使用 Netplan。
然后我又花了几个小时研究和尝试如下所述的“systemd 服务”方法:问题 1184648这似乎是更现代的方法,但我的服务在执行过程中失败,我不知道原因。
我不知道接下来该怎么做。如果我的 ProtonVPN 可以在有网络连接时自动连接,那就太好了。请提供建议、同情或麻醉。
答案1
答案2
这个答案是关于连接到网络时启动 ProtonVPN,而不是关于一般的问题。
使用 OpenVPN 配置文件
请参阅 ProtonVPN 的网站如何为 ProtonVPN 手动配置 OpenVPN。
本指南将引导您完成如何从 ProtonVPN 创建、下载和设置 OVPN 文件。
完成网站上的所有操作后,打开应用程序高级网络配置。如果通过搜索应用程序找不到此应用程序,请打开终端并输入:
nm-connection-editor
选择您想要使用 VPN 的网络。例如,以太网连接,然后单击窗口左下角的齿轮图标。
前往常规选项卡然后选中自动连接到 VPN。
然后使用旁边的下拉菜单选择您已经完成的 ProtonVPN 设置。
对每个想要使用 VPN 的 WiFi 网络重复此操作。
看20.04LTS NetworkManager VPN - 始终开启了解更多信息。
登录时运行的脚本
编写一个脚本,检查是否有任何互联网连接以及 ProtonVPN 是否没有活动连接。如果满足这些条件,脚本将使用命令行客户端启动 ProtonVPN。
创建一个名为 的脚本/home/your_username/bin/start_proton
。您可能需要创建文件夹/home/your_username/bin/
来保存所有脚本。脚本的内容是:
#!/bin/bash
# Sccript:/home/username/bin/start_proton
# Purpose: Check if there is internet and if proton is not running, then start VPN
STATUS=$(protonvpn-cli status | grep No) # Checks VPN is not running
ping -c1 -4 google.com > /dev/null # Check Internet is working
if [[ $? -eq 0 && $STATUS == "No active Proton VPN connection." ]]; then
echo $STATUS
protonvpn-cli connect --fastest
else
echo "FAIL: Either no Internet Or VPN is running already"
fi
注意:我使用了--fastest
VPN 服务器选项。您可以编辑该行并使用适合您的其他选项。
通过右键单击文件中的脚本,转到其属性>权限选项卡,使脚本可执行。
测试脚本
确保您已连接到互联网并且 ProtonVPN 没有运行。
打开终端并输入命令:
start_proton
如果一切顺利,您将看到 ProtonVPN 启动并连接到其服务器。
添加到启动应用程序
现在打开启动应用程序应用程序并点击Add按钮。填写以下字段:
Name: Start VPN
Command: /home/username/bin/start_proton
Comment: starts VPN if there is any Internet
替换username
为您在这台计算机的用户名。
单击Save按钮保存新条目。确保选中启动 VPN已检查。
下次您启动计算机并登录时,ProtonVPN 将启动。
希望这可以帮助