Ubuntu 16.04 自动启动VPN

Ubuntu 16.04 自动启动VPN

我有一个守护进程,从我自己的自托管 vpn 开始,可以很好地运行:

sudo openvpn --config /home/philip/open_vpn/client1.ovpn

现在我换成了付费 VPN 服务,上面的功能虽然管用,但每次都需要我手动输入凭证。这意味着我的自动启动功能会中断。

查看网络管理器的 GUI,似乎我可以让任何单独的网络自动连接到 vpn,但未知网络是我使用 vpn 的最重要时刻。

如何才能使自动 VPN 正常工作而不必每次都输入我的电子邮件和密码?

答案1

以下是我让它工作的方法。在我包含所有 vpn ovpn 文件的文件夹中,我创建了一个名为 的文件auth.txt。其中包含以下内容,替代我的实际凭证

Username
Password

然后我打开了我想要使用的 ovpn 文件,找到了auth-user-pass我修改过的一行,如下所示,将路径替换为 auth.txt 文件的完整路径

auth-user-pass /home/philip/open_vpn/auth.txt

然后我创建了一个名为的 bash 脚本start_vpn.sh,如下所示:

#!/usr/bin/env bash
sudo openvpn --config /home/philip/open_vpn/nord/ca24.nordvpn.com.udp1194.ovpn

然后我创建一个 systemd 启动脚本,/etc/systemd/system/start-openvpn.service其内容如下:

[Service]                                                                                                                                             
ExecStart=/home/philip/open_vpn/start_vpn.sh                                                                                                          

[Install]                                                                                                                                             
WantedBy=default.target 

然后我使用以下命令启用 systemd 作业:

systemctl enable start-openvpn.service

奖金:

如果你和我一样有数百个 ovpn 文件,你可能想要一次性更新所有这些文件中的行。这是sed我在包含 ovpn 文件的文件夹中使用的命令,你需要更新以反映你的系统

sed -i *nordvpn* -e 's/auth-user-pass/auth-user-pass \/home\/philip\/open_vpn\/auth.txt/g'

答案2

首先,编辑文件vim /etc/default/openvpn并取消注释该AUTOSTART="all"行。保存并重新启动系统。

在此处输入图片描述

您还可以阅读更多链接:开机自动启动 Openvpn 客户端

相关内容