在 Ubuntu 22.04 上配置静态 IP,最稳妥的方式是修改 /etc/netplan/ 目录下的 YAML 配置文件,并优先使用 netplan try 命令测试,防止配置错误导致网络中断。
先说结论:直接编辑 Netplan 配置文件即可生效,但务必先备份原文件并使用测试命令。
- 适合:Ubuntu 17.10 及之后版本(含 22.04)的服务器或桌面环境
- 先准备:确认网卡接口名称(如 ens33、eth0)和规划的 IP 信息
- 验收:应用配置后检查 IP 地址是否变更且外网可通
命令速用版
如果你已经知道网卡名和 IP 信息,可以直接参考以下命令流程:
# 1. 查看网卡名称
ip addr
# 2. 进入配置目录
cd /etc/netplan/
# 3. 备份现有配置(非常重要)
sudo cp 00-installer-config.yaml 00-installer-config.yaml.bak
# 4. 编辑配置文件
sudo nano 00-installer-config.yaml
# 5. 测试配置(出错会自动回滚)
sudo netplan try
# 6. 正式应用
sudo netplan apply
为什么会这样
Ubuntu 从 17.10 版本开始引入 Netplan 作为默认网络配置工具,取代了传统的 /etc/network/interfaces 文件。它使用 YAML 格式描述网络配置,底层可以调用 networkd 或 NetworkManager。在 22.04 版本中,这是系统唯一支持的标准配置方式,直接修改旧式配置文件不会生效。
分步处理
1. 确认网卡名称
打开终端,输入 ip addr。找到状态为 UP 的网卡名称,通常是 ens33、eth0 或 enp3s0 等,记下这个名字。
2. 找到配置文件
输入 ls /etc/netplan/。常见文件名是 00-installer-config.yaml 或 50-cloud-init.yaml。不同安装方式文件名可能不同,以实际列出为准。
3. 编辑配置内容
使用编辑器打开文件。注意 YAML 格式对缩进非常敏感,必须使用空格,不能用 Tab。以下是一个典型的静态 IP 配置示例:
network:
version: 2
renderer: networkd
ethernets:
ens33: # 这里换成你的网卡名
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
注意:较新的 Netplan 版本建议使用 routes 指定网关,虽然 gateway4 在 22.04 中通常仍能工作,但可能会显示废弃警告。
4. 应用配置
保存文件后,先运行 sudo netplan try。系统会等待确认,如果网络断开会自动回滚。确认无误后按回车,再运行 sudo netplan apply 永久生效。
怎么验证是否生效
输入 ip addr show <网卡名> 查看是否显示配置的静态 IP。接着使用 ping -c 4 www.baidu.com 测试域名解析和外网连通性。如果需要查看底层状态,可以使用 networkctl status。
常见坑
- 缩进错误:YAML 必须用空格缩进,混用 Tab 会导致解析失败。
- dhcp4 未关闭:配置静态 IP 时,必须显式设置
dhcp4: no,否则可能同时获取动态 IP。 - 网关写法:不要混淆
gateway4和routes。如果不确定,使用routes结构更通用。 - 文件名后缀:配置文件必须以
.yaml结尾,写成.yml不会被识别。
参考来源
- Ubuntu Server Guide - Network configuration (https://ubuntu.com/server/docs/network-configuration)
- Netplan.io - Examples (https://netplan.io/examples/)