我有一台安装了 OpenVPN 的服务器,还有运行 Ubuntu 的笔记本电脑(客户端),其中安装了 openvpn。在客户端上,如果我手动运行命令“sudo openvpn /etc/openvpn/client.conf”,客户端会配置为提示我输入登录信息(用户名和密码),然后它会使用这些信息与服务器进行身份验证。我希望这个过程在启动时自动发生。基本上,我需要登录客户端笔记本电脑和登录 openvpn 服务器是同一个操作。我希望登录 openvpn 的身份验证信息与登录笔记本电脑本地用户帐户的登录信息相同。我该怎么做?请详细说明。
答案1
我假设您已经下载了一个.ovpn
包含有关 vpn 信息的文件。
在同一文件夹中创建一个名为的文件auth.txt
,并在第一行插入你的 vpn 登录的用户名,在第二行插入 vpn 密码,例如:
admin
master
保存文件并关闭。编辑您的.ovpn
文件:找到以 开头的行auth-user-pass
并添加auth.txt
。保存文件并关闭。
我会写入完整路径auth.txt
,auth-user-pass /etc/openvpn/auth.txt
但是(至少在 Ubuntu 上)如果在同一个文件夹中,它也只使用文件名。
现在您应该能够sudo openvpn <.ovpn file>
无需提供凭证(密码除外sudo
)即可拨打电话。
有一个关于如何在系统启动时自动运行脚本的小注释:这里
答案2
在客户端配置文件中使用“auth-user-pass credentials-file.txt”选项。凭证文件应采用以下格式:
username
password
是的,您将获得包含用户名和密码的纯文本文件。
答案3
对于任何现代 Ubuntu 版本(16.04+),请将 OpenVPN 客户端配置文件另存为/etc/openvpn/<name>.conf
并运行
# systemctl enable openvpn@<name>.service
这将从已安装的 openvpn 包提供的模板创建一个启动单元。
(或者,如果您想区分服务器和客户端连接,请将 .conf 文件放入 .../client/ 或 .../server/ 子目录,并分别使用 openvpn-client@ 或 ...-server@ 模板来创建启动 uint。)
尝试启动新创建的服务 - systemctl start openvpn@<name>
。您将看到有关用户名和密码要求的广播以及用于填写缺失数据的 TTY 弹出窗口。输入数据并检查隧道是否已启动并正在运行。
然后按照其他答案中概述的那样创建授权文件并重新启动服务以查看数据是否已自动填写。
对我来说很好用。