精品軟體與實用教程
Ubuntu Netplan 50-cloud-init.yaml 多 IP 配置重启后失效修复指南
您的 Netplan 配置(/etc/netplan/50-cloud-init.yaml)在重启后回滚到原始 IP,通常是因为 cloud-init 服务在启动时重置网络配置,或 YAML 语法/权限问题导致配置不持久。 这在 Ubuntu 20.04+ 常见,尤其云服务器(如 Vultr、AWS)。别担心,修复简单:检查语法、禁用 cloud-init 重置,并验证应用。
什么是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 输出,我帮诊断!