我有一个基于 Debian 的无头盒子。它旨在通过其网络接口进行访问。网络是通过/etc/network/interfaces
. 我正在尝试验证文件是否真的有效。我的想法是检查文件是否有任何错误,在这种情况下,回退到默认文件。
我的问题是关于问题的第一部分:检测interfaces
文件中的错误。
我发现了很多关于使用ifup --no-act
命令的问题,但我在实践中看到的是这种方法对于我的情况来说不够健壮。举个例子:
root@arm:~# ifup --no-act --interfaces=/etc/network/interfaces eth0
run-parts /etc/network/if-pre-up.d
ip addr add 1s23.123.123.123/255.255.255.192 broadcast + dev eth0 label eth0
ip link set dev eth0 up
ip route add default via 123.123.123.122 dev eth0
run-parts /etc/network/if-up.d
请注意无效的 IP 地址集(第一个八位字节中的额外“s”)。该命令没有给出错误(无论如何我都可以看到),如果我以这种状态的文件重新启动机器,我将失去网络功能。一个有效的interfaces
给我一个非常相似的结果(除了broadcast +
部分):
root@arm:~# ifup --no-act --interfaces=/etc/network/interfaces eth0
run-parts /etc/network/if-pre-up.d
ip addr add 123.123.123.123/255.255.255.192 broadcast 123.123.123.127 dev eth0 label eth0
ip link set dev eth0 up
ip route add default via 123.123.123.122 dev eth0
run-parts /etc/network/if-up.d
这主要是我试图避免的问题。我的问题是如何检测/etc/network/interfaces
文件中的无效配置?加号是否表示有错误?这是什么意思?解决这个问题的最佳方法是什么?