![如何在 Ubuntu CLI 上自动启动 openvpn(客户端)?](https://linux22.com/image/828839/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%20CLI%20%E4%B8%8A%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8%20openvpn%EF%BC%88%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%89%EF%BC%9F.png)
我使用的是 Ubuntu 12.04 64 位。*.ovpn
如果我输入以下内容,则文件可以运行:
sudo openvpn client.ovpn
现在我想openvpn
在启动计算机时启动它。
我怎样才能做到这一点?
答案1
下载
OpenVPNConfigFile.ovpn
。请注意,您可以将文件重命名为任何您喜欢的名称。将 ovpn 文件移动到
/etc/openvpn
cd /etc/openvpn
文件夹并输入sudo nano yourserver.txt
your_server_user_name your_server_passowrd
保存并关闭
sudo nano OpenVPNConfigFile.ovpn
找到
auth-user-pass
并添加yourserver.txt
在它旁边,这样它就变成auth-user-pass yourserver.txt
这将允许您在每次启动 openvpn 连接时跳过输入凭据
重命名
OpenVPNConfigFile.ovpn
为OpenVPNConfigFile.conf
sudo mv OpenVPNConfigFile.ovpn OpenVPNConfigFile.conf
sudo nano /etc/default/openvpn
取消注释
AUTOSTART="all"
sudo service openvpn start
您应该会看到一条消息,提示您已连接。每次启动计算机时都会建立连接。
答案2
该openvpn
软件包附带一个初始化脚本。该脚本会自动为中的每个文件(注意扩展名)/etc/init.d/openvpn
设置连接。.conf
/etc/openvpn
根据此处的信息找到了这一点:https://openvpn.net/index.php/open-source/documentation/howto.html#startup
如果您在 Linux 上通过 RPM 或 DEB 包安装 OpenVPN,安装程序将设置一个启动脚本。执行时,启动脚本将扫描 /etc/openvpn 中的 .conf 配置文件,如果找到,将为每个文件启动一个单独的 OpenVPN 守护程序。
答案3
我在这方面遇到了一些困难,最终写出了使用 systemd 手动设置的所有说明。
这对我使用 Ubuntu 16.10 和 openvpn 2.3.11 很有效
设置你的 vpn 以从 bash 运行
这些示例使用 expressvpn,但大多数工作方式相同
下载你的 vpn 提供商的 ovpn 配置文件,例如my_express_vpn_阿姆斯特丹_2。虚拟专用网络
将其移动到/etc/openvpn/
并将其重命名为以结束配置文件
sudo mv ~/Downloads/my_express_vpn_amsterdam_2.ovpn /etc/openvpn/amsterdam-2.conf
您的 VPN 提供商将为您提供通过 openvpn 连接的用户名和密码。将用户名和密码分别保存在各自的行上
sudo vim /etc/openvpn/express-vpn-crednetials.txt
# add these lines
YOUR_VPN_USERNAME
YOUR_VPN_PASSWORD
# save the file
现在编辑/etc/openvpn/amsterdam-2.conf
查找一行auth-user-pass
,并将其替换为您的凭证文件的路径
auth-user-pass /etc/openvpn/express-vpn-crednetials.txt
测试你的配置!像这样启动 openvpn
sudo openvpn --config /etc/openvpn/amsterdam-2.conf
openvpn 应该无需询问用户名或密码即可连接
删除 openvpn 的现有(损坏)服务配置
sudo rm /etc/systemd/system/multi-user.target.wants/openvpn.service
将 openvpn 设置为作为 systemd 服务运行
openvpn 自带的配置已损坏,因此我删除了它并根据以下内容创建了一个新配置这个答案
为 openvpn 创建 systemd 服务
sudo vim /usr/lib/systemd/system/openvpn@service
添加此配置:
[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=syslog.target network.target
[Service]
PrivateTmp=true
Type=forking
PIDFile=/var/run/openvpn/%i.pid
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf
[Install]
WantedBy=multi-user.target
用作%i
通配符,以便此服务可用于多个 vpn 配置。将其设置为amsterdam-2.conf
我们之前创建的文件
sudo systemctl start [email protected]
systemd 服务现在应该在 amsterdam vpn 上运行。检查其状态如下
sudo systemctl status [email protected]
您应该会看到几行以 结尾的输出,Initialization Sequence Completed
并且您的 vpn 应该正在运行。
希望这有帮助!相关阅读:
答案4
如果你看一下,就会发现有预构建脚本/usr/lib/systemd/system/[email protected]
因此您实际上只需要 2 个步骤:
- 将您的配置文件复制到
/etc/openvpn/client/
:mv client.ovpn /etc/openvpn/client/client.conf
- 启动服务:
sudo systemctl start [email protected]
如果有文件/etc/openvpn/client/ttt.conf
,那么服务命令应该是sudo systemctl start [email protected]