错误信息提示“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
重新生成的配置覆盖。