如何为Netplan渲染的networkd配置添加自定义配置项
如何为Netplan渲染的networkd配置添加自定义配置项
嗨,我之前也遇到过类似的需求——想给Netplan生成的networkd配置加官方还没支持的自定义选项,这里有两个靠谱的解决方案,亲测能用:
方法一:利用Netplan的extra配置字段
Netplan其实自带了一个实用的隐藏功能,可以给networkd后端追加自定义配置内容。你只需要在Netplan的YAML配置文件(通常在/etc/netplan/*.yaml)里,针对目标网络接口添加networkd.extra字段即可。
举个例子,假设你的接口是eth0,配置如下:
network: version: 2 ethernets: eth0: dhcp4: true networkd: extra: | [Network] KeepConfiguration=dhcp-on-stop
添加完之后,执行下面的命令让配置生效:
sudo netplan generate && sudo netplan apply
这个方法的好处是所有配置都集中在Netplan的YAML文件里,管理起来更统一,Netplan生成配置时会自动把这段额外内容追加到对应的networkd配置文件中。
方法二:添加独立的systemd-networkd配置片段
如果不想修改Netplan的主配置,你可以直接在/etc/systemd/network/目录下创建一个自定义的配置片段,systemd-networkd会自动读取并和Netplan生成的配置合并生效。
- 创建一个优先级高于Netplan生成配置的文件(比如
10-custom-eth0.conf,数字越小优先级越高):
[Match] Name=eth0 [Network] KeepConfiguration=dhcp-on-stop
- 保存文件后,重启networkd服务或者执行
netplan apply让配置生效:
sudo systemctl restart systemd-networkd
这个方法的优势是自定义配置不会被Netplan的generate命令覆盖,适合长期保留的自定义设置,也可以用来添加多个复杂的networkd选项。
备注:内容来源于stack exchange,提问作者hbogert
相关产品推荐
相关产品推荐

