升级 Ubuntu 从 20.04 到 22.04 后三网配置失效怎么办

文章导读
升级 Ubuntu 20.04 到 22.04 后网络失效,通常是因为网络接口名称变更、Netplan 配置语法不兼容或网络管理器冲突。建议优先确认网络管理器类型,再修正 Netplan 配置。
📋 目录
  1. 1. 判断当前网络管理器
  2. 2. 查看实际网卡名称
  3. 3. 备份现有配置
  4. 4. 修正 Netplan 配置
  5. 5. 应用与验证
  6. 常见坑与排查
  7. 参考来源
A A

升级 Ubuntu 20.04 到 22.04 后网络失效,通常是因为网络接口名称变更、Netplan 配置语法不兼容或网络管理器冲突。建议优先确认网络管理器类型,再修正 Netplan 配置。

先说结论:大多数情况是网卡命名规则变化、配置文件语法错误或网络管理器不匹配。先恢复临时网络再修正配置。

  • 先确认:使用 systemctl 查看当前网络管理器(NetworkManager 或 systemd-networkd)
  • 先处理:备份并修正 /etc/netplan/ 下的 YAML 配置文件,注意 renderer 设置
  • 再验证:执行 netplan try 后测试连通性

1. 判断当前网络管理器

Ubuntu Server 默认使用 systemd-networkd,Desktop 默认使用 NetworkManager。配置错误通常源于 renderer 设置不当。

systemctl status NetworkManager
systemctl status systemd-networkd

若 NetworkManager 显示 active,则 Netplan 配置中建议指定 renderer: NetworkManager;若 systemd-networkd 运行,则使用 networkd。

2. 查看实际网卡名称

ip link show

记录状态为 UP 或 DOWN 的物理接口名称(如 enp0s3, eth0),不要依赖升级前的记忆。

3. 备份现有配置

避免通配符导致备份失败,建议针对具体文件操作:

ls /etc/netplan/
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak

4. 修正 Netplan 配置

编辑配置文件,确保 interfaces 字段与第一步查到的名称一致。注意 YAML 对缩进敏感,必须使用空格而非 Tab。

升级 Ubuntu 从 20.04 到 22.04 后三网配置失效怎么办
sudo nano /etc/netplan/00-installer-config.yaml

Ubuntu 22.04 标准配置示例(DHCP):

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: true

静态 IP 配置示例:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      addresses: [192.168.1.100/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

5. 应用与验证

使用 try 命令可以在配置错误时自动回滚,避免失联。

sudo netplan try
sudo netplan apply

验证连通性及服务状态:

ping -c 4 8.8.8.8
systemctl status systemd-networkd

注意:若使用 NetworkManager,请检查 NetworkManager 服务状态。

常见坑与排查

  • YAML 缩进错误:Netplan 对缩进非常敏感,错位会导致解析失败。
  • Renderer 不匹配:Desktop 版若强制使用 networkd 可能与 NetworkManager 冲突,导致界面无法联网。
  • DNS 解析问题:网络通了但域名无法解析,需检查 /etc/resolv.conf 或 systemd-resolved 状态。
  • MAC 地址绑定:如果配置中写死了 MAC 地址,更换硬件或虚拟化环境变更后需更新。

参考来源

Ubuntu Wiki, JammyJellyfish/ReleaseNotes, https://wiki.ubuntu.com/JammyJellyfish/ReleaseNotes