做嵌入式Linux开发的都知道网络配置这事说大不大说小不小。以前靠/etc/network/interfaces硬写改个IP要重启网络服务万一写错缩进远程连不上就得跑机房。Ubuntu 17.10之后Netplan成了默认网络配置工具。它用YAML语法统一管理NetworkManager和systemd-networkd改完配置两条命令生效不用重启不用断连。以EASY-EAI-Nano-TBRV1126B为例一条推文带你看懂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 try120秒自动回滚给自己留一手。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——不想固定IPDHCP一句话搞定对于桌面电脑或临时测试设备DHCP是最省事的。Netplan里只要两行network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true optional: trueIP、网关、DNS全由路由器自动分配什么都不用管。总结Netplan的核心思路很简单把网络配置写成一份结构清晰的YAML文件剩下的交给工具去处理。对于嵌入式开发场景它能减少手动敲命令的出错概率也避免了改配置就要重启网络的麻烦。让边缘AI落地更简单也让网络配置更省心。下次遇到网络配置问题不妨先打开/etc/netplan/看一眼说不定比翻ifconfig手册更快。
还在手敲ifconfig改IP?Netplan这套YAML配置法,嵌入式开发早该用了
做嵌入式Linux开发的都知道网络配置这事说大不大说小不小。以前靠/etc/network/interfaces硬写改个IP要重启网络服务万一写错缩进远程连不上就得跑机房。Ubuntu 17.10之后Netplan成了默认网络配置工具。它用YAML语法统一管理NetworkManager和systemd-networkd改完配置两条命令生效不用重启不用断连。以EASY-EAI-Nano-TBRV1126B为例一条推文带你看懂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 try120秒自动回滚给自己留一手。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——不想固定IPDHCP一句话搞定对于桌面电脑或临时测试设备DHCP是最省事的。Netplan里只要两行network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true optional: trueIP、网关、DNS全由路由器自动分配什么都不用管。总结Netplan的核心思路很简单把网络配置写成一份结构清晰的YAML文件剩下的交给工具去处理。对于嵌入式开发场景它能减少手动敲命令的出错概率也避免了改配置就要重启网络的麻烦。让边缘AI落地更简单也让网络配置更省心。下次遇到网络配置问题不妨先打开/etc/netplan/看一眼说不定比翻ifconfig手册更快。