Ubuntu 网络配置演进:从 20.04 到 24.04 的静态 IP 设置指南

如果你是一位 Ubuntu 用户或系统管理员,可能会发现不同版本的 Ubuntu 在配置网络静态 IP 的方式上有所不同。特别是从早期的版本升级到最新的 Ubuntu 24 LTS (Noble Numbat) 后,这种变化更加明显。

演进概览:一图看懂配置方式变化

从 Ubuntu 17.10 开始,Netplan 就逐渐取代了传统的 /etc/network/interfaces 文件方式,成为默认的网络配置工具。

flowchart TD A[Ubuntu 网络配置方式演进] --> B["Ubuntu 20.04 LTS<br>过渡与并存期"] A --> C["Ubuntu 22.04 LTS<br>Netplan 稳定期"] A --> D["Ubuntu 24.04 LTS<br>Netplan 强化与云集成期"] B --> B1["主要使用 Netplan<br>(默认渲染器 networkd 或 NetworkManager)"] B --> B2["备用:ifupdown<br>(/etc/network/interfaces)"] C --> C1["全面普及 Netplan<br>成为绝对标准"] C --> C2["淘汰 ifupdown<br>默认未安装"] D --> D1["继续强化 Netplan<br>为云优化"] D --> D2["NetworkManager<br>作为默认渲染器更常见"] D --> D3["彻底告别 ifupdown"] B2 -.->|逐渐废弃| C2 C2 -.->|彻底淘汰| D3

Ubuntu 20.04 & 22.04:Netplan 的引入与确立

配置方式

这两版本标志着 Netplan 的过渡和确立期,配置方式非常相似。

  1. 配置文件位置 :Netplan 配置文件位于 /etc/netplan/ 目录下,通常命名为:

    • 01-netcfg.yaml
    • 00-installer-config.yaml (Ubuntu Server 安装程序生成)
    • 01-network-manager-all.yaml (Ubuntu Desktop 安装程序生成)
  2. 修改步骤:

    bash 复制代码
    # 使用 sudo 权限编辑配置文件
    sudo nano /etc/netplan/00-installer-config.yaml
    # 或
    sudo nano /etc/netplan/01-network-manager-all.yaml
  3. 配置示例:

    yaml 复制代码
    network:
      version: 2
      renderer: networkd  # Server 版常用。Desktop 版常用 NetworkManager
      ethernets:
        ens33:            # 网卡名称,请使用 `ip a` 命令查看实际名称
          dhcp4: no       # 禁用 IPv4 DHCP
          dhcp6: no       # 禁用 IPv6 DHCP
          addresses: [192.168.1.100/24]     # 静态 IP 地址和子网掩码
          routes:
            - to: default
              via: 192.168.1.1              # 默认网关
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1]   # DNS 服务器

    渲染器 (Renderer) 说明:

    • networkd:通常用于服务器版,由 systemd-networkd 管理网络
    • NetworkManager:通常用于桌面版,提供图形界面支持
  4. 应用配置:

    bash 复制代码
    # 测试并应用配置(有确认等待)
    sudo netplan try
    # 或直接应用配置
    sudo netplan apply

版本间差异

  • Ubuntu 20.04 :处于过渡期,可能还保留了 ifupdown 包,两种方式并存
  • Ubuntu 22.04 :Netplan 已成为绝对标准,ifupdown 默认未安装

Ubuntu 24.04 LTS:Netplan 的强化与云集成

24.04 版本继续使用 Netplan 作为核心配置工具,但有一些重要变化和优化。

核心变化

  1. 彻底告别 ifupdown :传统配置方式所需的 ifupdown 包默认不再安装,Netplan 成为唯一推荐的配置方式

  2. 强化的云集成 :更深入地集成了 cloud-init,特别是在云镜像和服务器安装中:

    • 初始网络配置可能由 cloud-init 生成
    • 修改由 cloud-init 管理的配置时,可能需要调整 /etc/cloud/cloud.cfg.d/ 下的设置
    • 避免配置被覆盖,可能需要禁用 cloud-init 对网络的管理
  3. 桌面版优化:默认使用 NetworkManager 作为渲染器,图形界面操作更加成熟稳定

配置方法

桌面用户(推荐使用 GUI)

  1. 打开"设置" → "网络"
  2. 点击齿轮图标进入有线连接设置
  3. 在"IPv4"或"IPv6"选项卡中,将方法改为"手动"
  4. 填写地址、网关、DNS等信息
  5. 应用更改

注意 :图形界面实际上是在后台修改 /etc/netplan/ 下的配置文件

服务器用户(直接编辑配置文件)

bash 复制代码
sudo nano /etc/netplan/00-installer-config.yaml

配置内容与之前版本相同,应用配置仍使用:

bash 复制代码
sudo netplan apply

版本对比总结

特性 Ubuntu 20.04 Ubuntu 22.04 Ubuntu 24.04 说明
配置工具 Netplan (主流) Netplan (标准) Netplan (唯一标准) 20.04 是过渡期
传统方式 ifupdown (可能已安装) ifupdown (默认未安装) ifupdown (默认未安装) 24.04 彻底告别旧方式
配置文件 /etc/netplan/*.yaml /etc/netplan/*.yaml /etc/netplan/*.yaml 核心方式不变
应用命令 netplan apply netplan apply netplan apply 核心方式不变
渲染器 networkd 或 NetworkManager networkd 或 NetworkManager networkd 或 NetworkManager 取决于安装类型
云集成 有 有 更强 24.04 需注意 cloud-init 的影响
桌面版推荐 Netplan 文件或 GUI Netplan 文件或 GUI GUI (设置应用) 24.04 图形界面更成熟

实践建议

  1. 桌面用户 :优先使用图形界面(Settings → Network)修改 IP 地址,简单且不易出错
  2. 服务器用户 :继续编辑 /etc/netplan/ 下的 YAML 文件,然后运行 sudo netplan apply
  3. 云服务器用户 :在 24.04 上特别注意 cloud-init 的配置,避免修改被覆盖
  4. 通用提示 :
    • 使用 ip a 或 nmcli device 命令确认正确的网络接口名称
    • 修改前备份原始配置文件:sudo cp /etc/netplan/config.yaml /etc/netplan/config.yaml.bak
    • 使用 sudo netplan try 在应用前验证配置语法,防止配置错误导致网络断开
相关推荐
逆风的蚂蚁1 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
captain3762 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
IT_陈寒3 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
泡海椒3 小时前
05-雷达图多维画像-信用评级多维画像
后端
王中阳Go3 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
大哥43094 小时前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0
后端
岩钧4 小时前
New API 源码解析:一个生产级 AI 网关的架构与实现
后端
学到老活到老4 小时前
第 24 集:配置文件写了 80,Spring Boot 为什么读到 90?
java·后端·spring
用户360055579004 小时前
Kestrel_VLLM - 25 · 全注意力层设备化、整层对拍与访存粒度
后端
yliucherish4 小时前
从零实现一个 SQL 注入检测引擎:报错注入与布尔盲注的误报控制
后端