ubuntu22.04在配置静态IP后被重置的原因与解决方法
描述:最近在使用22.04过程中,发现在重启系统后,设置的静态IP地址会重置到安装系统时设置的IP地址
grep -v "^#" /etc/netplan/50-cloud-init.yaml network: ethernets: ens33: addresses: - 10.0.0.11/24 nameservers: addresses: - 223.5.5.5 - 8.8.8.8 search: [] routes: - to: default via: 10.0.0.254 ens34: addresses: - 192.168.1.11/24 nameservers: addresses: [] search: [] version: 2
根因:此文件的配置会在每次系统重启时被cloud云文件配置的内容所进行覆盖,可以通过禁用 cloud-init 的网络配置来防止这种情况发生。
我们在22.04系统下修改默认/etc/netplan/50-cloud-init.yaml网络配置时,也会有如下的注释内容(如下图)
# This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} # 此文件由数据源提供的信息生成而成。对其进行修改不会在实例重启后保持有效。若要禁用 cloud-init 的网络配置功能,请在 /etc/cloud/cloud.cfg.d 目录下创建一个名为 99-disable-network-config.cfg 的文件,并在其中写入以下内容: # network: {config: disabled}
按照提示在/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg配置文件中添加 network: {config: disabled} 服务器重启也不会再出现重置的情况了

那就很好奇,既然要覆盖的话,那他肯定有一个原始文件,用于覆盖现有文件。我们先进入云配置目录,挨个检查,发现在/etc/cloud/cloud.cfg.d/90-installer-network.cfg保留了原始的IP地址
通过上面,已经知道了设置netplan的静态ip地址时重启后IP地址被覆盖的原因,接下来就是解决问题了。
解决:
1、直接修改云配置IP地址
/etc/cloud/cloud.cfg.d/90-installer-network.cfg
2、按照配置文件提示,创建一个名为99-disable-network-config.cfg 的文件,并在其中写入以下内容:
vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}

浙公网安备 33010602011771号