Ubuntu 16.04自动启动VPN

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

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

现在,我改为付费VPN服务,但上述工作,但每次都需要我手动输入我的凭据。 这意味着我的自动启动中断。

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

如何在不输入我的电子邮件和密码的情况下让auto-vpn正常工作?

以下是我如何使用它。 在我的所有vpn ovpn文件的文件夹中,我创建了一个名为auth.txt的文件。 其中包含以下内容, 替代我的实际凭据

 Username Password 

然后我打开了我想要使用的ovpn文件,并找到了使用auth-user-pass我修改它看起来像这样, 用auth.txt文件的完整路径替换路径

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

然后我创建了一个名为start_vpn.sh的bash脚本,它看起来像:

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

然后我在/etc/systemd/system/start-openvpn.service创建一个systemd启动脚本,它看起来像:

 [Service] ExecStart=/home/philip/open_vpn/start_vpn.sh [Install] WantedBy=default.target 

然后我启用systemd作业:

 systemctl enable start-openvpn.service 

奖金:

如果您有像我这样的100个ovpn文件,您可能需要立即更新所有这些文件中的行。 这是我在我的ovpn文件的文件夹中使用的sed命令, 您将需要更新以反映您的系统

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

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

在此处输入图像描述

您可以阅读更多链接: 在启动时自动启动Openvpn客户端