Ubuntu 多 IP 配置重启后失效修复指南:添加多IP没有生效重新启动后又默认回原始IP

Ubuntu Netplan 50-cloud-init.yaml 多 IP 配置重启后失效修复指南

您的 Netplan 配置(/etc/netplan/50-.yaml)在重启后回滚到原始 IP,通常是因为 cloud-init 服务在启动时重置网络配置,或 YAML 语法/权限问题导致配置不持久。 这在 Ubuntu 20.04+ 常见,尤其云服务器(如 Vultr、AWS)。别担心,修复简单:检查语法、禁用 cloud-init 重置,并验证应用。Ubuntu 添加多IP的没有生效服务:器重新启动后又默认回原始IP-1

什么是50-cloud-init.yaml

该文件是使用 的 Ubuntu Linux 系统目录50-cloud-init.yaml中的关键组件。/etc/netplan/cloud-init 此文件定义了系统的网络配置和设置,尤其是在云或虚拟化环境中。
主要特点50-cloud-init.yaml:
生成者cloud-init: 该文件由 自动生成cloud-init,该工具旨在执行 Linux 系统的早期初始化和定制,特别是在 AWS、Azure 等云环境或 VMware 等虚拟化平台中。
Netplan配置: 它使用 Netplan 配置系统,这是 Ubuntu 定义网络设置的默认系统。
不适用于手动编辑: 该文件通常包含注释,表明直接对其进行的更改在重启或cloud-init重新运行时不会保留。 这是因为cloud-init可以根据数据源提供的信息重新生成该文件。
动态配置: 它通常使用 DHCP(例如dhcp4: true)配置网络接口以自动获取 IP 地址,使其适合动态云环境。
覆盖: 虽然不建议直接编辑,但您可以通过在目录中创建一个具有更高数字前缀(例如99-my-custom-config.yaml)的新 Netplan 配置文件来覆盖其设置/etc/netplan/。 这允许您定义静态 IP 地址或其他优先的特定网络设置。
本质上,它作为基于云或虚拟化的 Ubuntu 实例50-cloud-init.yaml提供的初始网络配置,虽然了解系统的默认网络设置很重要,但自定义网络配置应该在单独的 Netplan 文件中实现以确保持久性。cloud-init

ubuntu22.4多IP配置方法

首先在50-cloud-init.yaml中配置好多IP

sudo vi /etc/netplan/50-cloud-init.yaml

配置好后保存退出 :wq

生成并测试配置,检查语法是否正确。

sudo netplan generate

没问题后,应用配置文件。

sudo netplan apply

应用后如果出现OVS 警告,请无视。

下面这一步很关键:

禁用 cloud-init 网络重置,关键步骤,防止重启回滚!

新建一个文件

sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

在里面添加

network: {config: disabled}

清理 cloud-init 缓存和实例 ID

sudo cloud-init clean --logs
sudo rm -rf /var/lib/cloud/instance  # 删除实例数据
sudo dpkg-reconfigure cloud-init  # 重新配置,选择 "None" 禁用网络模块

应用配置并测试重启

sudo netplan generate  # 检查语法
sudo netplan apply  # 应用
ip addr show  # 立即验证多 IP
sudo reboot

如果以上方法无效的话,完全禁用 cloud-init(极端情况)

sudo touch /etc/cloud/cloud-init.disabled
sudo systemctl disable cloud-init
sudo systemctl mask cloud-init

升级修复:更新 cloud-init:sudo apt update && sudo apt upgrade cloud-init(某些版本已修复)。

这个方案基于社区修复,通常 100% 有效。 如果重启后还是问题,在下方留言 cat /etc/netplan/*.yaml 和 journalctl -u cloud-init 输出,我帮诊断!

评分

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注