Ubuntu 22.04 配置静态 IP 地址 netplan 怎么写配置文件

文章导读
在 Ubuntu 22.04 上配置静态 IP,最稳妥的方式是修改 /etc/netplan/ 目录下的 YAML 配置文件,并优先使用 netplan try 命令测试,防止配置错误导致网络中断。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

在 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 版本中,这是系统唯一支持的标准配置方式,直接修改旧式配置文件不会生效。

Ubuntu 22.04 配置静态 IP 地址 netplan 怎么写配置文件

分步处理

1. 确认网卡名称
打开终端,输入 ip addr。找到状态为 UP 的网卡名称,通常是 ens33、eth0 或 enp3s0 等,记下这个名字。

2. 找到配置文件
输入 ls /etc/netplan/。常见文件名是 00-installer-config.yaml 或 50-cloud-init.yaml。不同安装方式文件名可能不同,以实际列出为准。

3. 编辑配置内容
使用编辑器打开文件。注意 YAML 格式对缩进非常敏感,必须使用空格,不能用 Tab。以下是一个典型的静态 IP 配置示例:

Ubuntu 22.04 配置静态 IP 地址 netplan 怎么写配置文件
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。
  • 网关写法:不要混淆 gateway4routes。如果不确定,使用 routes 结构更通用。
  • 文件名后缀:配置文件必须以 .yaml 结尾,写成 .yml 不会被识别。

参考来源

  • Ubuntu Server Guide - Network configuration (https://ubuntu.com/server/docs/network-configuration)
  • Netplan.io - Examples (https://netplan.io/examples/)