还在手敲ifconfig改IP?Netplan这套YAML配置法,嵌入式开发早该用了

做嵌入式Linux开发的都知道,网络配置这事说大不大,说小不小。以前靠/etc/network/interfaces硬写,改个IP要重启网络服务,万一写错缩进,远程连不上就得跑机房。

Ubuntu 17.10之后,Netplan成了默认网络配置工具。它用YAML语法统一管理NetworkManager和systemd-networkd,改完配置两条命令生效,不用重启,不用断连。

以EASY-EAI-Nano-TB(RV1126B)为例,一条推文带你看懂Netplan的网络配置使用技巧。

PART.01——YAML写对了,配置就成功了一半

Netplan的配置文件在/etc/netplan/目录下,后缀必须是.yaml。几个关键点:

  • 缩进必须用2个空格,禁止Tab键

  • 键值对冒号后面必须跟一个空格
  • 数组元素用-开头,每个元素独占一行
  • DNS地址可以用方括号写在一行:[8.8.8.8, 114.114.114.114]
  • 文件名建议数字开头,比如01-eth0-init.yaml

生效命令:

sudo netplan generate # 检查语法,生成配置文件 sudo netplan apply # 应用配置,即时生效

怕配置写错断网?用sudo netplan try,120秒自动回滚,给自己留一手。

PART.02——三种场景,覆盖90%的网络配置需求

场景1:纯静态IP,最简单的写法

只需要三个参数:IP地址、关闭DHCP、允许接口未就绪时启动。

network: version: 2 renderer: networkd ethernets: eth0: dhcp4: false addresses: - 192.168.3.188/24 optional: true

虽然简单,但是只能本网段通信,要上网还得配路由。

场景2:静态IP + 路由

加一个routes字段,指定目标网段和网关:

network: version: 2 renderer: networkd ethernets: eth0: dhcp4: false addresses: - 192.168.3.188/24 optional: true routes: - to: default via: 192.168.3.1 metric: 100

to: default就是默认路由,相当于0.0.0.0/0。metric控制优先级,数值越小越优先。

场景3:静态IP + 路由 + DNS

不加DNS,域名解析不了,ping百度都ping不通。加上nameservers字段:

network: version: 2 renderer: networkd ethernets: eth0: dhcp4: false addresses: - 192.168.3.188/24 optional: true routes: - to: default via: 192.168.3.1 metric: 100 nameservers: addresses: - 8.8.8.8 - 114.114.114.114

如果配置完还是解析不了,可以手动改/etc/resolv.conf兜底。

PART.03——不想固定IP?DHCP一句话搞定

对于桌面电脑或临时测试设备,DHCP是最省事的。Netplan里只要两行:

network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true optional: true

IP、网关、DNS全由路由器自动分配,什么都不用管。

总结

Netplan的核心思路很简单:把网络配置写成一份结构清晰的YAML文件,剩下的交给工具去处理。对于嵌入式开发场景,它能减少手动敲命令的出错概率,也避免了改配置就要重启网络的麻烦。

让边缘AI落地更简单,也让网络配置更省心。下次遇到网络配置问题,不妨先打开/etc/netplan/看一眼,说不定比翻ifconfig手册更快。