我面临一个奇怪的问题,我有一个像这样的脚本:
ifconfig eth0 up
sleep 2
systemctl start [email protected]
如果eth0
在调用此脚本之前关闭,则 openvpn 将无法连接。journalctl
回报
openvpn 控制进程已退出代码已退出状态 = 1,无法启动与客户端的 OpenVPN 连接
但是,如果我从第一次调用开始第二次重新运行相同的脚本eth0
,它就可以正常工作。知道发生了什么以及如何解决这个问题吗?
答案1
Arch 非常适合这种配置。然而,你真的不应该ifconfig
在 Arch 上使用,它iproute2
很久以前就已经切换到了,最好这样做:
ip link set dev eth0 up
dhcpcd eth0
(“更好”是因为你有两个步骤,并且你确切地知道哪个步骤失败。另外,我相信你没有eth0
类似的东西enp1s0
,但这只是一个小细节。)
无论如何,ifconfig eth0
您可以使用以下命令启动有线接口:
systemctl start [email protected]
然后你可以简单地更改openvpn服务,首先复制服务文件:
cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
然后将其(副本)更改为:
[Unit]
...
[email protected]
[email protected]
(这并不是太多的黑客行为,即使拱门维基建议这样做。该文章存在争议,因为它使用了该/usr/lib/systemd
文件,所以我通过首先复制它来调整答案以使其成为正确的方式)
现在您应该能够启动 VPN
systemctl start [email protected]
并且网络将首先启动。并停止两者:
systemctl stop [email protected]