Ubuntu 22(尤其是 Server 22.04 及其衍生版)在启动后配置网络主要依赖 Netplan。如果你在图形化界面或 /etc/netplan/ 目录下手动修改了 IP 地址,但重启后 IP 变回原来的,通常是由于 cloud-init(云初始化服务)或 Netplan 配置文件加载顺序导致的。
方法一:彻底禁用 cloud-init 的网络配置(推荐)
这是最稳妥的方法,防止系统在每次启动时自动覆盖你的设置。
# 1. 创建禁用 cloud-init 网络配置的文件sudo mkdir -p /etc/cloud/cloud.cfg.d/echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg# 2. 编辑 Netplan 配置文件(确保使用字母顺序靠前的文件名)# 如果 /etc/netplan/ 目录下已有 01-network-manager-all.yaml,直接编辑它# 否则,新建一个文件sudo nano /etc/netplan/01-network-manager-all.yaml在编辑器中输入以下内容(根据你的网络接口名和实际网络环境修改):
network: version: 2 renderer: NetworkManager ethernets: ens33: # 替换为你的网卡名称,例如 eth0, enp0s3, ens33 等 dhcp4: no addresses: - 192.168.1.100/24 # 你想设置的静态 IP 和子网掩码 gateway4: 192.168.1.1 # 默认网关 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
保存并退出后,执行:
# 3. 应用配置sudo netplan apply
重启系统后,IP 地址应保持不变。
方法二:修改 cloud-init 默认的网络配置文件
如果你不想完全禁用 cloud-init,可以直接修改它生成的默认配置文件:
# 编辑 cloud-init 生成的默认网络配置文件sudo nano /etc/cloud/cloud.cfg.d/90-installer-network.cfg
找到类似以下内容的行:
network: version: 2 ethernets: ens33: dhcp4: true
将 dhcp4: true 改为 dhcp4: false 并添加静态 IP 配置:
network: version: 2 ethernets: ens33: dhcp4: false addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]
保存后,执行:
sudo netplan apply
重启系统后,IP 地址应保持不变。

