前言
Netplan 是一个实用程序,用于在 Linux 系统上轻松配置网络。您只需创建所需网络接口的 YAML 描述以及每个接口应配置的作用。根据此描述,Netplan 将为您选择的渲染器工具生成所有必要的配置。
Netplan 从 /etc/netplan/*.yaml 读取由管理员、安装人员、云映像实例化或其他操作系统部署编写的网络配置。在早期引导期间,Netplan 会在 /run 中生成特定于后端的配置文件,以将设备的控制权移交给特定的网络守护程序。
配置文件是:/etc/netplan/01-netcfg.yaml(添加规则,打头的两位数字01应该类似于udev中的优先级)
Ubuntu 从 17.01 开始之后的版本,已放弃在/etc/network/interfaces 里固定IP的配置,而是改成 netplan 方式。实际上,netplan是用于做静态IP、网关、DNS、路由的常用命令。
renderers
Netplan 当前适用于这些受支持的渲染器:
- NetworkManager
- Systemd-networkd
Desktop版本默认安装NetworkManager,并且默认使用NetworkManager管理网络。Ubuntu的Server版本只有终端界面,没有桌面GUI,且Server版本不会安装NetworkManager,需要手动安装。
sudo apt install network-manager
查看版本
> sudo apt-cache policy netplan.io
netplan.io:
已安装:0.104-0ubuntu2~20.04.6
候选: 0.104-0ubuntu2~20.04.6
版本列表:
*** 0.104-0ubuntu2~20.04.6 500
500 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main amd64 Packages
500 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/main amd64 Packages
100 /var/lib/dpkg/status
0.99-0ubuntu1 500
500 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main amd64 Packages
默认配置
network:
version: 2
renderer: NetworkManager
命令
netplan操作常用命令:
# 生成netplan配置
netplan generate
# 应用配置
netplan apply
# 申请配置并等待用户确认;如果网络中断或未给出确认,将回滚。
netplan try
# 获取当前netplan配置
netplan get
# 修改当前netplan配置。
netplan set
# 返回错误信息
netplan --debug apply
实践:给Ubuntu Desktop配置静态IP、网关、DNS
1. 检测系统环境及网络接口
Host_info :
System : Ubuntu 20.04.6 64 bit
Kernel : 5.15.0-126-generic
Network_info :
Internet Status: Connected
NIC Detected:
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V
04:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
2.disable NetworkManager
建议disable
sudo systemctl disable NetworkManager
3.enable systemd-networkd
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
4. config YAML & apply
network:
ethernets:
eno1:
addresses: [192.168.10.212/24]
dhcp4: false
optional: true
#gateway4: 192.168.10.200
routes:
- to: default
via: 192.168.10.200
nameservers:
addresses: [223.5.5.5,8.8.8.8]
enp4s0:
addresses: [192.168.10.211/24]
dhcp4: false
optional: true
nameservers:
addresses: [223.5.5.5,8.8.8.8]
version: 2
renderer: networkd
5. apply
sudo netplan apply
脚本检查是否生效
Network_info :
Internet Status: Connected
NIC Detected:
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V
04:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
Gateway Addrs:
default via 192.168.10.200 dev eno1 proto static
DNS Addrs: 127.0.0.53
IPv4 Addrs: 192.168.10.212
评论