VPN killswitch 使用 UFW,但现在 openvpn3 不再能自动启动

问题描述

我成功地实现了这一点,它阻止了我的 Linux 机器上的所有互联网连接,除非它通过特定的 VPN 连接: https://www.comparitech.com/blog/vpn-privacy/how-to-make-a-vpn-kill-switch-in-linux-with-ufw/

如果我手动执行 openvpn3 session-start --config ~/Desktop/config.ovpn,它通过 VPN 成功连接。

我曾经在一个脚本(以 #!/bin/bash 作为标头)中使用此命令,该脚本在设备启动时运行没有任何问题,直到我为 killswitch 配置了 ufw以上(现在 ufw 在设备启动时运行)。

我使用 openvpn3,因此在上述教程中使用 openvpn 命令的说明根本不起作用。

我什至尝试在我的 bash 脚本中使用 sleep 让它等待一段时间直到启动后。不起作用。但是如果我在命令提示符下手动发出连接命令,它就可以工作。

请帮忙!我需要它自动连接。非常感谢!

解决方法

在这上面花了一整天之后,我想出了一个解决方案。我找到了一篇指导我的文章:https://www.howtogeek.com/687970/how-to-run-a-linux-program-at-startup-with-systemd/

我使用 systemd (systemctl) 设置了一个服务项目,只是为了连接该命令。这是我的条目的样子:

#/etc/systemd/system/connectvpn.service

[Unit]
Description=Connect VPN

After=ufw.service network.target
Requires=ufw.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/connect
#/usr/local/bin/connect

#!/bin/bash
openvpn3 session-start --config /home/xyz/Desktop/config.ovpn

现在运行良好,在启动时连接到 VPN。