在Ubuntu系统中,网络配置经历了从/etc/network/interfaces到netplan的演变。如果你还在用老办法配静态IP,是时候了解一下netplan了——它用YAML格式声明网络状态,语法简洁,结构清晰,不管是入门还是生产环境都能应付得来。
什么是netplan?为什么用它?
netplan是Ubuntu 18.04 LTS之后默认的网络配置工具。它的工作方式很直接:你写一个YAML配置文件,netplan根据这份配置生成对应的网络管理器的配置,让systemd-networkd或NetworkManager去实际执行。
这样做的好处是统一了配置入口——不管你用哪个后端,配置文件格式是一样的。对于习惯用YAML的人来说,netplan比传统的ifcfg方式友好得多。
netplan配置文件基础结构
netplan的配置文件放在/etc/netplan/目录下,文件名通常是00-installer-config.yaml。下面是一个最简单的静态IP配置示例:
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
逐行解释一下:
version: 2表示使用netplan配置格式版本2renderer指定后端,服务器环境通常用networkdethernets下面跟网卡名,ens33需要替换成你实际的网卡名addresses用CIDR格式写IP地址gateway4是IPv4网关nameservers配置DNS服务器
查找网卡名:第一步必须做的事
配置之前,你得先确认网卡的真实名称。Ubuntu 18.04之后网卡命名规则变了,不再是固定的eth0,需要用命令查:
ip a
会看到类似这样的输出:
1: lo: <LOOPBACK,UP> lo
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP>
link/ether 00:0c:29:6b:4a:3e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.101/24 brd 192.168.1.255
这里网卡名是ens33,当前分配了192.168.1.101/24。记住这个名字,后面配置时要替换进去。
单网卡静态IP配置实例
假设你的服务器信息如下:
- 网卡:ens33
- IP:192.168.1.100/24
- 网关:192.168.1.1
- DNS:223.5.5.5(阿里DNS)
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 223.5.5.5
- 119.29.29.29
保存到/etc/netplan/01-netcfg.yaml,然后执行:
sudo netplan generate
sudo netplan apply
如果配置有问题导致网络断开,用IPMI或VNC先连上服务器改回来。生产环境建议先在测试机验证。
双网卡配置:同时配内网和外网
生产环境中服务器通常有两个网卡——一个走内网,一个走公网。netplan支持在一个文件里声明多个网卡:
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 10.0.0.100/24
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
nameservers:
addresses:
- 223.5.5.5
ens34:
addresses:
- 192.168.1.100/24
这里ens33走内网网关10.0.0.1,而ens34不需要默认路由。注意用routes替代了gateway4,因为在多网卡场景下指定默认路由需要精确控制。
DHCP配置:快速上手
如果你只需要DHCP自动获取IP,配置更简单:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: yes
执行sudo netplan apply后,网卡会自动获取IP地址。
常用配置参数汇总
下面整理了netplan静态IP配置中频率最高的参数:
| 参数 | 说明 | 示例 |
|---|---|---|
| addresses | 静态IP地址(CIDR格式) | ["192.168.1.100/24"] |
| gateway4 | IPv4默认网关 | 192.168.1.1 |
| dhcp4 | 是否启用DHCP | yes / no |
| nameservers.addresses | DNS服务器列表 | ["8.8.8.8","223.5.5.5"] |
| nameservers.search | DNS搜索域 | ["local"] |
| routes.to | 目标网络 | 0.0.0.0/0 |
| routes.via | 下一跳地址 | 192.168.1.1 |
| routes.metric | 路由优先级(数值越小越优先) | 100 |
配置生效后如何验证
执行完netplan apply后,用以下命令验证网络是否正常:
# 查看IP配置
ip a show ens33
# 查看路由表
ip route show
# 测试网关连通性
ping -c 3 192.168.1.1
# 测试DNS解析
ping -c 3 baidu.com
四步全部通过,说明静态IP配置成功。如果ping不通,先检查IP和网关是否写对,再检查防火墙规则。
配置出错如何回退
netplan的配置会覆盖系统原有的网络配置。如果apply之后网络不通,先切回命令行手动配置:
sudo ip addr add 192.168.1.100/24 dev ens33
sudo ip route add default via 192.168.1.1 dev ens33
临时恢复网络后,再去修改YAML文件,修改正确后再次apply。
多路由优先级配置实例
有些场景下需要精细控制路由优先级,比如服务器有多条出口:
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
routes:
- to: 0.0.0.0/0
via: 192.168.1.1
metric: 100
ens34:
addresses:
- 10.0.0.100/24
routes:
- to: 10.0.0.0/16
via: 10.0.0.1
metric: 200
通过metric参数控制优先级,数值越小优先级越高。在有多网卡的服务器上,这个配置很实用。
结尾
netplan把Ubuntu的网络配置统一到了YAML这个入口上,语法简洁、可读性强,熟练之后比传统的interfaces方式效率高很多。记住几个要点:网卡名用ip a确认,配置文件在/etc/netplan/,改完后必须执行netplan apply才能生效。生产环境部署前,建议先在测试机验证完整流程。
相关推荐:
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论