如何在Ubuntu CLI上自动启动OpenVPN(客户端)?


16

我正在使用Ubuntu 12.04 64位。我输入以下*.ovpn文件即可正常工作:

sudo openvpn client.ovpn

现在,我想openvpn在启动计算机时启动。

我怎样才能做到这一点?

Answers:


22
  1. 下载OpenVPNConfigFile.ovpn。请注意,您可以将文件重命名为任意名称。

  2. 将ovpn文件移至 /etc/openvpn

  3. cd /etc/openvpn 文件夹并输入 sudo nano yourserver.txt

    your_server_user_name
    your_server_passowrd
    

    保存并关闭

  4. sudo nano OpenVPNConfigFile.ovpn

    查找auth-user-pass并添加yourserver.txt到它旁边,使其变为

    auth-user-pass yourserver.txt
    

    这样,您每次启动openvpn连接时都可以跳过输入凭据的操作

  5. 重命名OpenVPNConfigFile.ovpnOpenVPNConfigFile.conf

    sudo mv OpenVPNConfigFile.ovpn OpenVPNConfigFile.conf
    
  6. sudo nano /etc/default/openvpn

    取消评论 AUTOSTART="all"

  7. sudo service openvpn start

    您应该看到一条消息,说明您已连接。每次启动计算机时都会建立连接。


5
如果您正在运行systemd,则需要systemctl daemon-reload在重新启动服务之前运行
Mario Campa,2017年

6

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守护程序。


2

拥有一种非黑客的方式可能会很好,但是现在必须这样做。

1)在/etc/init.d/中创建文件myopenvpn

nano /etc/init.d/myopenvpn

2)插入myopenvpn并保存:

# OpenVPN autostart on boot script

start on runlevel [2345]
stop on runlevel [!2345]

respawn

exec /usr/sbin/openvpn --status /var/run/openvpn.client.status 10 --cd /etc/openvpn --config /etc/openvpn/client.conf --syslog openvpn

消息来源:http : //www.hackerway.ch/2012/12/11/how-to-auto-start-openvpn-client-in-debian-6-and-ubuntu-12-04/#comment-79


2

我对此有些卡住,最终写出了有关手动使用systemd进行设置的所有说明。

这适用于我使用Ubuntu 16.10和openvpn 2.3.11

设置您的VPN以从bash运行

这些示例使用expressvpn,但大多数示例以相同的方式工作

下载您的VPN提供商的ovpn配置文件,例如my_express_vpn_amsterdam_2ovpn

将其移至/etc/openvpn/并重命名以.conf结尾

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的现有(已损坏)服务配置

须藤rm /etc/systemd/system/multi-user.target.wants/openvpn.service

设置openvpn作为systemd服务运行

openvpn随附的配置已损坏,因此我将其删除并根据此答案创建了一个新的配置

为openvpn创建系统服务

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 openvpn@amsterdam-2.service

systemd服务现在应该在阿姆斯特丹的vpn上运行。像这样检查它的状态

sudo systemctl status openvpn@amsterdam-2.service

您应该看到多行输出结束,Initialization Sequence Completed并且您的vpn应该正在运行。

希望这可以帮助!相关阅读:

/unix/206058/how-to-start-2fa-using-openvpn-with-systemd/206490#206490

如何在Ubuntu 15.04上启动OpenVPN客户端服务

/unix/148990/using-openvpn-with-systemd/149003#149003?newreg=53ca53879fcc489f94304f91bbc82ab3

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.