错误信息提示“This file is generated from information provided by the datasource”表明,/etc/netplan/ 下的配置文件是由 cloud-init 自动生成的。
cloud-init 是一种用于初始化云主机(例如在 AWS、Azure 或其他云环境中)的工具,它会根据云提供商的配置自动生成网络配置文件。
如果你希望 手动管理网络配置,并且不希望 cloud-init 再自动覆盖这些配置,可以禁用 cloud-init 对网络配置的管理。以下是你可以采取的步骤:
1. 禁用 cloud-init 网络配置功能
- 
创建禁用配置文件:
你需要创建一个禁用网络配置的文件。可以使用
sudo权限在/etc/cloud/cloud.cfg.d/目录下创建该文件。sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg - 
在文件中添加以下内容:
network: config: disabled保存并退出编辑器(按
Ctrl + O,然后按Enter,最后按Ctrl + X退出)。 
2. 删除自动生成的 netplan 配置文件
在 cloud-init 生成配置之后,你可能需要删除或清理 /etc/netplan/ 下的现有网络配置文件。
sudo rm /etc/netplan/*.yaml
3. 手动创建新的 netplan 配置文件
接下来,你可以手动创建一个 netplan 配置文件来配置网络。例如,你可以在 /etc/netplan/ 目录下创建一个新的 .yaml 文件,像这样:
sudo nano /etc/netplan/01-netcfg.yaml
将你需要的网络配置写入该文件,类似如下:
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      addresses:
        - 45.38.224.74/29
      gateway4: 45.38.224.73
      nameservers:
        addresses:
          - 8.8.8.8
          - 1.1.1.1
          - 8.8.4.4
          - 1.0.0.1
        search: []
保存并退出。
4. 应用 netplan 配置
配置完成后,使用以下命令应用新的网络配置:
sudo netplan apply
5.重启网卡报错
Failed to connect system bus: No such file or directory
WARNING:root:Falling back to a hard restart of systemd-networkd.service
通常是因为系统的 D-Bus 或 systemd 服务没有正常运行,或者当前环境缺少一些必须的库或文件。D-Bus 是 Linux 系统中一个非常重要的消息总线系统,用于通信和进程间协作。在使用 systemd-networkd 或其他 systemd 服务时,依赖 D-Bus 来管理进程和服务。
首先,确保 D-Bus 服务正在运行。如果你在非标准环境中(例如 Docker 容器或某些最小化安装的系统中),可能没有正确启动 D-Bus。你可以通过以下命令检查 D-Bus 服务的状态:
sudo systemctl status dbus
如果 D-Bus 没有启动,使用以下命令启动它:
sudo systemctl start dbus
然后再试着重启 systemd-networkd 服务:
sudo systemctl restart systemd-networkd
总结
- 禁用 
cloud-init网络配置功能,避免它覆盖你的网络设置。 - 删除 
/etc/netplan/下的现有自动生成的配置文件。 - 手动创建并应用你自己的 
netplan配置文件。 - 重启网络服务或系统来确保所有更改生效。
 
这些步骤可以确保你完全控制网络配置,并且不会被 cloud-init 重新生成的配置覆盖。
