还在手敲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: 100to: 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: trueIP、网关、DNS全由路由器自动分配,什么都不用管。
总结
Netplan的核心思路很简单:把网络配置写成一份结构清晰的YAML文件,剩下的交给工具去处理。对于嵌入式开发场景,它能减少手动敲命令的出错概率,也避免了改配置就要重启网络的麻烦。
让边缘AI落地更简单,也让网络配置更省心。下次遇到网络配置问题,不妨先打开/etc/netplan/看一眼,说不定比翻ifconfig手册更快。