问题描述
我成功地实现了这一点,它阻止了我的 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。