我正在尝试将 OpenVPN 设置为开机自动启动。对于 18.04 Mate,我尝试将 opvpn 配置放入 /etc/openvpn,然后编辑 /etc/default/openvpn 以连接所有。这不起作用,尽管它在 16.04 上有效。
我已经研究过使用 systemd 但无法让它工作。
我曾尝试使用网络管理器在登录时进行连接,作为一种折衷,如果将 VPN 设置为始终使用,则此操作会失败,因为以太网不会自动连接。
所以,总而言之,我想要的是:
我的 openvpn 在启动时自动连接。
感谢大家的帮助!
陣容
答案1
如果将配置保存为目录MY_CONNECTION.conf
中的文件/etc/openvpn
,则可以执行以下操作:
systemctl enable openvpn@MY_CONNECTION
systemctl start openvpn@MY_CONNECTION
其中 MY_CONNECTION 与 相同MY_CONNECTION.conf
。
因此,如果您有多个连接,那么您就会有多个systemctl
呼叫。
systemctl enable openvpn@MY_CONNECTION1
systemctl start openvpn@MY_CONNECTION1
systemctl enable openvpn@MY_CONNECTION2
systemctl start openvpn@MY_CONNECTION2
ETC。
答案2
下面是我配置私人互联网接入 (PIA) OpenVPN 隧道的步骤。我用它Switzerland.ovpn
来指代 OpenVPN 配置。请用适合您配置的文件名替换它。
我使用的是 Ubuntu 18.04,但它应该可以在使用 systemd 的任何 Linux 发行版上运行。我只是不知道网络管理器是否会覆盖它。
依赖项
sudo apt update
sudo apt install openvpn
OpenVPN 配置
sudo mkdir /etc/openvpn/PIA
(更改PIA
为您选择的名称)下载您的 OpenVPN 配置文件,例如:
sudo wget https://www.privateinternetaccess.com/openvpn/openvpn.zip https://www.privateinternetaccess.com/openvpn/openvpn-strong.zip
(提取并)将配置文件复制到新创建的文件夹(此处
/etc/openvpn/PIA
)cd /etc/openvpn/PIA
如果您不使用密码,请跳过步骤 7 至 10
- (选修的)
sudo touch piapass.txt
- (选修的)
sudo chmod 700 piapass.txt
(可选)输入
sudo nano piapass.txt
并输入以下内容(将username
和更改password
为适合您的配置的值)username password
(可选)输入
sudo nano Switzerland.ovpn
并将行更改auth-user-pass
为auth-user-pass /etc/openvpn/PIA/piapass.txt
- 测试连接
sudo openvpn Switzerland.ovpn
Systemd 启动服务设置
更改piavpn.service
为您希望启动 OpenVPN 连接服务所具有的任何名称。
cd /etc/systemd/system/
sudo touch piavpn.service
sudo chmod 644 piavpn.service
键入
sudo nano piavpn.service
并输入以下内容(确保调整以开头的行以ExecStart
匹配您的配置):[Unit] Description=Private Internet Access VPN (Swiss) After=multi-user.target [Service] Type=idle ExecStart=/usr/sbin/openvpn --config /etc/openvpn/PIA/Switzerland.ovpn [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable piavpn.service
sudo reboot
重启后,您的 OpenVPN 连接应在启动时自动设置。
答案3
确实 @xm88,您希望在 openvpn 服务启动时自动提供凭据,无需用户交互或输入
在您的烤箱配置文件中(raspbian 上为 .conf,但根据您的情况需要哪个扩展名)
client
...
auth-user-pass $yourCredentialsFile
[some more config]
<ca>
-----BEGIN CERTIFICATE-----
etc etc
在你的配置文件旁边,有一个名为$你的凭证文件其中包含:
username
password
我必须建议,从安全角度来看,这不是最佳做法,因为凭据是简单的,任何有权访问你的 openvpn 配置目录的用户都可以看到/etc/openvpn
,但这将允许 openvpn 服务在启动时自动登录。