netplan网络管理
Netplan 是 Ubuntu 系统(自 18.04 版本起)默认的网络配置工具,通过 YAML 格式的声明式配置文件简化网络管理,支持静态 IP、DHCP、网桥、VLAN 等复杂场景。以下是详细配置指南:
核心概念与配置步骤
-
配置文件位置
Netplan 的配置文件位于/etc/netplan/
目录,文件名通常为01-netcfg.yaml
或类似格式。文件名需以.yaml
结尾,且遵循数字-名称.yaml
的命名规则。 -
基本语法结构
配置文件以network
为根节点,包含version: 2
表示使用新版语法,并通过ethernets
、wifis
等子节点定义接口。例如:
network:
version: 2
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
dhcp4: true
表示启用 IPv4 DHCP。addresses
定义静态 IP 和子网掩码。routes
设置默认网关,替代旧版的gateway4
参数。nameservers
配置 DNS 服务器。
- 应用配置
修改文件后,执行sudo netplan apply
使配置生效。若需测试配置是否安全,可用sudo netplan try
临时应用并确认。
常见配置示例
1. 静态 IP 配置
network:
version: 2
renderer: networkd # 或 NetworkManager(桌面版默认)
ethernets:
eth0:
dhcp4: no
addresses: [10.0.0.10/24]
routes:
- to: default
via: 10.0.0.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
renderer
指定后端(networkd
用于服务器,NetworkManager
用于桌面)。- 若接口可能未连接,添加
optional: true
避免系统启动超时。
2. DHCP 配置
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp6: true # 可选,启用 IPv6 DHCP
- 支持多接口同时启用 DHCP。
3. 无线网络配置
network:
version: 2
wifis:
wlp2s0:
access-points:
"SSID名称":
password: "密码"
dhcp4: true
- 适用于 WPA2 加密的 Wi-Fi。
4. 网桥配置
network:
version: 2
bridges:
br0:
interfaces: [enp1s0]
dhcp4: true
- 将物理接口
enp1s0
加入虚拟网桥br0
,并启用 DHCP。
高级功能与注意事项
-
多后端支持
Netplan 生成配置后,实际网络管理由systemd-networkd
(服务器)或NetworkManager
(桌面)执行。二者区别:systemd-networkd
:适用于固定网络环境(如服务器)。NetworkManager
:支持动态网络切换(如笔记本电脑)。
-
复杂场景
- VLAN:通过
vlans
节点划分虚拟局域网。 - 绑定(Bonding) :定义
bonds
实现链路聚合。 - 路由策略:使用
routing-policy
指定多网关或策略路由。
- VLAN:通过
-
调试与问题排查
- 使用
ip addr
和ip route
检查接口和路由状态。 - 若配置错误导致网络中断,可通过
sudo netplan --debug apply
查看详细日志。 - 备份原始配置文件,避免误操作。
- 使用
与其他工具的兼容性
- 切换回传统配置:
安装ifupdown
包并删除/etc/netplan/
下的文件,即可恢复/etc/network/interfaces
配置。 - 混合使用场景:
Netplan 未配置的接口仍可通过其他工具管理(如nmcli
或ip
命令)。
Linux常见网络管理方式
- NetworkManager:
NetworkManager是一个能够动态控制和配置网络的守护进程,它管理网络服务和网络连接。
提供了命令行工具nmcli,可以用于查看网络状态、管理网络连接和配置网络设置。
也可以使用nmtui命令打开NetworkManager的文本用户界面(TUI),进行网络连接的激活、关闭和添加等操作。适用于需要频繁更改网络配置或使用图形界面的桌面系统。 - networkd(systemd-networkd)
是systemd组件的一部分,主要用于管理系统的网络配置。
设计上比较简洁,适合资源有限的环境,如服务器和嵌入式设备。
使用简单的配置文件(如/etc/netplan/*.yaml)进行网络配置,通常不提供图形化界面。
默认随系统启动并管理网络接口。
适用于需要稳定性和简单配置的服务器环境和嵌入式系统。
在这些环境中,networkd能够提供基础且可靠的网络配置功能。
与systemd紧密集成,具有较高的稳定性。
轻量级且易于配置,适合资源受限的环境。 - network.service:
基于sysV初始化系统的服务管理,是系统提供的服务之一,用于兼容遗留的网络功能,网络管理脚本通常位于/etc/init.d/network,该脚本实际通过ifup/ifdown等命令来管理网络。使用systemctl命令来管理network.service的启动、停止和重启等操作。网络配置文件通常位于/etc/sysconfig/network-scripts/目录下,以ifcfg-开头,后跟网卡名称。
通过上述配置示例和原理,用户可灵活应对不同网络需求。建议参考 Netplan 官方文档 获取最新语法和功能支持。
参考:https://netplan.readthedocs.io/en/stable/netplan-tutorial/
https://documentation.ubuntu.com/server/explanation/networking/configuring-networks/index.html
https://blog.csdn.net/bigbaojian/article/details/125396045
纸上得来终觉浅,绝知此事要躬行