启动时自动启动 OpenVPN 客户端

use*_*409 38 startup openvpn

我试图让 OpenVPN 在启动时自动启动。今天我必须手动输入

sudo openvpn --client --config $HOME/openvpn/anonine.ovpn --ca $HOME/openvpn/anonine.ca.crt 
Run Code Online (Sandbox Code Playgroud)

其次是用户名和密码。有没有什么好方法可以在启动时自动执行此操作?

Mit*_*tch 46

编辑/etc/default/openvpn。只需按键盘上的Ctrl+ Alt+T即可打开终端。当它打开时,运行以下命令:

sudo gedit /etc/default/openvpn
Run Code Online (Sandbox Code Playgroud)

取消注释该AUTOSTART="all"行。保存并关闭。重新启动系统。

图片

  • 多谢。据我所知,(i) 的答案(完全在这个问题的范围内)是 `AUTOSTART="all"` 尝试启动 `/etc/openvpn` 中的每个 `.conf` 文件(我不过,我很想得到确认)。(ii) 的答案也合理地限定在这个问题的范围内——除非在没有用户输入的情况下秘密可用(出于显而易见的原因,钥匙串比纯文本更可取),否则您无法自动启动 VPN 连接。我承认(iii)是课外的,很可能值得一个新问题。但是,我可以看到这些链接中没有人回答这些链接。 (6认同)
  • (i) 如何以这种方式启动特定的 VPN?(ii) 谁为以此方式发起的连接提供身份验证(是否可以在不以纯文本形式存储用户名-密码组合的情况下发起连接)?(iii) 如果可能,最好使用 cli 方法(允许在无头服务器上实现)。我可以用“nano”替换“gedit”,但我无法使用 nm-applet 在密钥环中存储凭据。 (2认同)

小智 14

如果您在 systemd (16.04) 上,配置了 AUTOSTART="all" 并且它仍然没有启动,请注意:

> # If you're running systemd, changing this variable will
> # require running "systemctl daemon-reload" followed by
> # a restart of the openvpn service (if you removed entries
> # you may have to stop those manually)
Run Code Online (Sandbox Code Playgroud)

做一个

systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)

然后重启服务

 sudo service openvpn restart
Run Code Online (Sandbox Code Playgroud)

  • @DimitriKopriwa 只需将“.ovpn”重命名为“.conf”。 (3认同)

小智 10

你可以把auth-user-pass filename你的anonine.ovpn地方filename是与2号线的用户名/密码的文件。

确保它filename得到了适当的保护,因为它将包含普通的用户名/密码。

这是来自openvpn --help

Client options (when connecting to a multi-client server):

--auth-user-pass [up] : Authenticate with server using username/password.
                  up is a file containing username/password on 2 lines,
                  or omit to prompt from console.
Run Code Online (Sandbox Code Playgroud)

您还可以anonine.ovpn通过以下方式将您的证书添加到您的添加中:

<ca>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>
Run Code Online (Sandbox Code Playgroud)


小智 5

如果连接时不需要用户名/密码,则将 .ovpn 文件重命名为扩展名为 .conf。

OpenVPN 应该在启动时连接,即使没有 autostart=all。

如果需要用户名/密码,

编辑 .conf 文件

编辑 auth-user-pass 用户密码文件名

创建一个包含以下内容的文件:

username
password
Run Code Online (Sandbox Code Playgroud)

如果要连接网络管理器,请确保先执行以下操作:

sudo apt-get install network-manager-openvpn
Run Code Online (Sandbox Code Playgroud)

确保您的 Ubuntu 至少是 14.04。这在 12.04 上不起作用。

如果您没有 ca.crt、client.crt 等,请从 .conf 中提取它们。

使用网络管理器,创建一个新的 VPN 连接或导入您的 conf。

添加证书和 ta.key。

路由,仅将连接用于其网络上的资源。

使用网络管理器编辑您的 Internet 连接。选择连接 VPN,然后选择您的 VPN 连接。