我整天都在挠头。我有以下 netplan yaml 文件:(为了保护隐私,mac 地址和 ip 地址被屏蔽了)
network:
version: 2
renderer: networkd
ethernets:
enp2s0:
match:
macaddress: "aa:bb:cc:dd:ee:ff"
set-name: enp2s0
dhcp4: no
addresses: [ "10.9.8.7/24" ]
routes:
- to: 0.0.0.0/0
via: 10.9.8.8
metric: 254
table: 253
vlans:
vlan202:
link: enp2s0
id: 202
addresses: [ 75.xxx.yyy.zzz/24 ]
nameservers:
addresses: [ 75.xxx.yyy.111, 75.75.75.75 ]
search: [ example.org, example.com ]
routes:
- to: 0.0.0.0/0
via: 75.xxx.yyy.100
metric: 200
table: 253
然后我运行命令netplan try
,确保它没有任何错误netplan generate
。然后我检查了 /etc/systemd/network,它是空的,我检查了 /run/systemd/network,它有 2 个文件:
10-netplan-enp2s0.链接:
[Match]
MACAddress=aa:bb:cc:dd:ee:ff
[Link]
Name=enp2s0
WakeOnLan=off
10-netplan-enp2s0.网络:
[Match]
MACAddress=aa:bb:cc:dd:ee:ff
Name=enp2s0
[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6
DNS=10.9.8.8
Domains=lan
[DHCP]
UseMTU=true
RouteMetric=100
ClientIdentifier=mac
CriticalConnection=true
我想也许它会在重新启动系统时重新生成,所以我这样做了,但 systemd 配置文件仍然相同,完全忽略了我的自定义设置。是我做错了什么还是 netplan 完全是一堆垃圾?我应该回到 ifupdown 吗?
答案1
问题似乎解决了。原来 /run/netplan 中有一个旧的 .yaml 文件与 /etc/netplan 中的文件冲突,我删除它后,它就netplan apply
可以正常工作了。(我从来没有费心检查那里,因为我重启了系统很多次,并且 /run 被挂载为 tmpfs,我猜那个 .yaml 文件如何在重启后仍然存在是一个谜)。
现在下一个挑战:
如何在 netplan 中配置 veth 设备和 netns?
答案2
下的 netplan 系统生成文件/run/netplan
将覆盖 下的配置/etc/netplan
。 您对 的修改/run
在重启后将失效。
按字母顺序排列的后续文件(无论在哪个目录中)如果键不存在则修改键;如果存在则覆盖先前的键。
为了确保您的配置优先,请将您的文件重命名为 ,/etc/netplan
以便按词汇顺序将它们放在 之后enp2s0.yaml
,例如zz-enp2s0.yaml
。