系统版本 241
猫 /etc/systemd/network/FE0.network
[Match]
Name=FE0
[Network]
Address=192.168.2.180/24
Gateway=192.168.2.1
猫 /etc/systemd/network/FE0.network.d/xx.conf
[Network]
Address=192.168.1.110/24
当 i 时systemctl restart systemd-networkd
,FE0 接口地址是 192.168.2.180,而不是 192.168.1.110,为什么?当我ifconfig FE0 192.168.1.123
,然后ifconfig
,FE0接口地址是192.168.1.110(来自xx.conf),为什么?
答案1
man 5 systemd.network
关键字上说Address=
:
地址=
静态 IPv4 或 IPv6 地址及其前缀长度,以“/”字符分隔。多次指定此键可配置多个地址。地址的格式必须如 inet_pton(3) 中所述。这是仅包含地址键的 [Address] 部分的简写(见下文)。该选项可以指定多次。
如果您使用当前推荐的工具ip addr show
而不是已弃用的ifconfig
工具,您应该会看到 FE0 接口现在有两个地址:192.168.2.180/24
和192.168.1.110/24
。该ifconfig
工具只能显示其中的第一个。
如果您希望您的/etc/systemd/network/FE0.network.d/xx.conf
文件覆盖现有地址而不是添加第二个,您将需要以下语法:
[Network]
Address=
Address=192.168.1.110/24
没有地址的行Address=
表示您希望放弃其他配置文件中提到的任何地址,而仅使用覆盖文件中的地址。
所有具有限定符的 systemd 设置“可以指定多次”工作方式相同:如果要更改覆盖文件中的设置而不是添加到主配置文件中指定的设置,则必须首先将其显式设置为空白。