坑记录
去官网下载了22.04.05系统进行安装并配置网络,
cat /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} network:ethernets:ens33:dhcp4: trueversion: 2
发现默认是存在/etc/netplan/50-cloud-init.yaml这个文件,于是就在这个上面进行了配置,netplan apply之后能正常生效,后面经过重启服务器后发现无法连接,再次查看网卡配置文件变回了最初的样子,配好的ip也消失了,询问了豆包,百度了一圈也没找到问题所在,最后翻译了下这个文件到注释部分才找到关键原因:
1. # This file is generated from information provided by the datasource. Changes
此注释表明 /etc/netplan/50-cloud-init.yaml 文件是由 cloud-init 根据数据源提供的信息自动生成的。数据源可以是云平台的元数据服务、本地配置文件等,cloud-init 会从这些数据源获取网络配置信息并生成对应的 netplan 配置文件。
2. # to it will not persist across an instance reboot. To disable cloud-init's
这意味着对该文件所做的修改在实例重启后不会保留。因为每次系统重启时,cloud-init 会重新从数据源获取信息并重新生成该文件,从而覆盖你手动做出的修改。
3. # network configuration capabilities, write a file
要禁用 cloud-init 的网络配置功能,需要创建一个特定的配置文件。
4. # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
具体做法是在 /etc/cloud/cloud.cfg.d 目录下创建一个名为 99-disable-network-config.cfg 的文件。
5. # network: {config: disabled}
在 99-disable-network-config.cfg 文件中,需要写入 network: {config: disabled} 这一内容。这行配置会告知 cloud-init 不要再对网络配置进行管理,这样你就可以自由地手动修改 /etc/netplan 目录下的其他配置文件,并且这些修改在系统重启后会得以保留。
解决办法就是在99-disable-network-config.cfg文件中加disable字段:
vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg network: {config: disabled}
对比了下22.04.4系统,netplan目录下默认还是只有00-installer-config.yaml,这个改完还是正常的重启能生效
原文地址:https://blog.csdn.net/perfect12312645/article/details/147105295