Ubuntu 22.04采用Netplan作为默认网络配置工具,通过YAML配置文件管理网络接口、IP地址、网关以及DNS等参数。相比传统的ifconfig或/etc/network/interfaces方式,Netplan提供了更加统一、灵活的网络管理方案,尤其适合服务器环境中的静态IP配置。
对于需要固定访问地址的服务器、虚拟机、云主机以及局域网设备而言,配置静态IP能够避免DHCP地址变化导致的服务不可用问题。本文将详细介绍Ubuntu 22.04系统下使用Netplan配置静态IP的方法,包括配置文件结构、参数说明、应用配置以及常见故障排查。
Ubuntu 22.04网络配置机制简介
Ubuntu 22.04默认使用Netplan管理网络配置,Netplan负责读取位于/etc/netplan/目录下的YAML配置文件,并根据配置生成对应的网络服务配置。
常见的Netplan配置文件名称包括:
Bash/etc/netplan/00-installer-config.yaml
或者:
Bash/etc/netplan/50-cloud-init.yaml
不同安装方式可能生成不同文件名称,例如:
-
桌面版Ubuntu通常由NetworkManager管理网络;
-
Server版本通常使用systemd-networkd;
-
云服务器环境可能由cloud-init生成配置。
查看当前Netplan配置文件:
Bashls /etc/netplan/
查看当前网络状态:
Baship addr
或者:
Bashnetworkctl status
查看网卡名称
配置静态IP之前,需要确认系统中的网络接口名称。
执行:
Baship link
示例输出:
1: lo:2: ens33:
其中:
ens33
就是需要配置的网卡名称。
不同环境中的网卡名称可能不同:
-
ens33
-
ens160
-
eth0
-
enp3s0
-
eno1
Netplan配置必须使用实际存在的接口名称,否则配置不会生效。
也可以使用:
Bashnmcli device status
查看NetworkManager管理的设备。
编辑Netplan配置文件
进入配置目录:
Bashcd /etc/netplan/
使用编辑器打开配置文件:
Bashsudo vim 00-installer-config.yaml
Ubuntu 22.04静态IP配置示例如下:
YAMLnetwork: version: 2 ethernets: ens33: dhcp4: false addresses: - 192.168.1.100/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 114.114.114.114
保存后退出。
Netplan静态IP参数详细说明
version参数
YAMLversion: 2
表示使用Netplan第二版本配置格式。
Ubuntu 18.04及之后版本默认使用version 2。
网卡配置
YAMLethernets: ens33:
表示配置以太网设备ens33。
如果你的网卡名称不同,需要替换为实际名称。
例如:
YAMLenp0s3:
禁用DHCP
YAMLdhcp4: false
关闭IPv4自动获取地址。
如果设置为:
YAMLdhcp4: true
系统会通过DHCP服务器自动获取IP。
静态IP环境必须关闭DHCP。
设置静态IP地址
YAMLaddresses: - 192.168.1.100/24
其中:
192.168.1.100
表示服务器IP地址。
/24
表示子网掩码:
255.255.255.0
常见对应关系:
| CIDR | 子网掩码 |
|---|---|
| /24 | 255.255.255.0 |
| /16 | 255.255.0.0 |
| /8 | 255.0.0.0 |
配置默认网关
Ubuntu 22.04推荐使用routes配置:
YAMLroutes: - to: default via: 192.168.1.1
其中:
192.168.1.1
就是网关地址。
旧版本Netplan可能使用:
YAMLgateway4: 192.168.1.1
虽然仍然兼容,但Ubuntu 22.04中已经不推荐继续使用。
配置DNS服务器
示例:
YAMLnameservers: addresses: - 8.8.8.8 - 114.114.114.114
常用DNS:
Google DNS:
8.8.8.8 8.8.4.4
国内公共DNS:
114.114.114.114 223.5.5.5
配置DNS后,可以解决服务器无法解析域名的问题。
使用Netplan应用配置
修改完成后,需要让配置生效。
执行:
Bashsudo netplan apply
如果配置没有错误,网络会立即切换到新的静态IP。
为了避免远程服务器配置错误导致断网,可以先使用:
Bashsudo netplan try
该命令会临时应用配置,并等待确认。
示例:
Do you want to keep these settings? Press ENTER before the timeout to accept the new configuration
如果网络正常,按回车确认。
如果配置错误,系统会自动恢复旧配置。
验证静态IP是否生效
查看IP地址:
Baship addr show ens33
正常情况下可以看到:
inet 192.168.1.100/24
检查默认路由:
Baship route
输出类似:
default via 192.168.1.1 dev ens33
测试网关:
Bashping 192.168.1.1
测试公网连接:
Bashping 8.8.8.8
测试DNS:
Bashping www.baidu.com
如果IP可以访问但域名无法解析,通常是DNS配置问题。
Ubuntu 22.04配置多个IP地址
Netplan支持一个网卡绑定多个IP。
示例:
YAMLnetwork: version: 2 ethernets: ens33: dhcp4: false addresses: - 192.168.1.100/24 - 192.168.1.101/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 8.8.8.8
应用:
Bashsudo netplan apply
查看:
Baship addr
可以看到多个IPv4地址绑定到同一个接口。
配置静态IP时常见错误
1. YAML格式错误
Netplan严格依赖YAML缩进。
错误:
YAMLnetwork: version: 2 ethernets: ens33:
正确:
YAMLnetwork: version: 2 ethernets: ens33:
注意:
-
只能使用空格;
-
不要使用Tab;
-
层级缩进必须一致。
检查配置:
Bashsudo netplan generate
如果有错误,会显示具体位置。
2. 网卡名称填写错误
例如配置:
YAMLens33:
但实际网卡:
Bashenp0s3
会导致配置无法生效。
查看:
Baship link
确认名称。
3. 修改错误导致远程服务器断连
通过SSH连接服务器修改网络时,直接执行:
Bashnetplan apply
可能导致连接中断。
建议:
Bashsudo netplan try
确认网络正常后再永久应用。
4. cloud-init覆盖Netplan配置
云服务器可能由cloud-init自动管理网络。
如果修改配置后重启失效,可以检查:
Bashls /etc/cloud/
关闭cloud-init网络管理:
创建文件:
Bashsudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
添加:
YAMLnetwork: config: disabled
然后重新配置Netplan。
NetworkManager环境下配置静态IP
Ubuntu桌面版可能使用NetworkManager。
配置示例:
YAMLnetwork: version: 2 renderer: NetworkManager
指定NetworkManager作为后端。
应用:
Bashsudo netplan apply
查看连接:
Bashnmcli connection show
也可以通过图形界面:
设置 → 网络 → IPv4 → 手动
填写:
-
IP地址
-
子网掩码
-
网关
-
DNS
恢复DHCP自动获取IP
如果需要恢复自动获取地址,可以修改:
YAMLnetwork: version: 2 ethernets: ens33: dhcp4: true
然后执行:
Bashsudo netplan apply
系统会重新通过DHCP获取地址。
Netplan配置最佳实践
在生产环境中配置静态IP时,建议遵循以下原则:
-
修改前备份配置文件:
Bashsudo cp /etc/netplan/00-installer-config.yaml ~/netplan-backup.yaml
-
使用
netplan try测试配置。 -
确认IP地址没有冲突。
-
保留正确DNS配置。
-
远程服务器操作时准备备用访问方式。
-
使用版本控制管理重要服务器配置。
常用Netplan命令汇总
查看配置:
Bashls /etc/netplan/
生成配置:
Bashsudo netplan generate
测试配置:
Bashsudo netplan try
应用配置:
Bashsudo netplan apply
查看网络状态:
Bashnetworkctl status
查看IP:
Baship addr
查看路由:
Baship route
总结
Ubuntu 22.04通过Netplan实现静态IP配置,核心流程包括确认网卡名称、修改YAML配置文件、设置IP地址、网关和DNS,然后使用netplan apply使配置生效。
相比传统网络配置方式,Netplan具有结构清晰、兼容性强、适合自动化管理等优势,非常适用于服务器、虚拟化环境以及云计算场景。掌握Netplan配置方法,可以快速完成Ubuntu系统网络规划,并有效解决IP固定、远程访问以及服务部署中的网络问题。