在全新安装的 22.04 服务器中,/run/systemd/network 中的配置来自哪里?

在全新安装的 22.04 服务器中,/run/systemd/network 中的配置来自哪里?

我已运行以下命令sudo find / -type f -name "*.network" -not -path "/var/lib/docker/*"来显示.network新安装的 22.04 服务器上的所有文件。

.network下面的文件外,我在系统上看/run/systemd/network/不到任何其他文件。.network

鉴于此/run,我在文件tempfs中看到的配置来自哪里,networkd 源代码中的硬编码默认值?.network/run/systemd/network/

答案1

Ubuntu 22.04 Server 的默认网络设置是使用 Netplan 实用程序通过位于的 YAML 文件来配置和管理网络/etc/netplan/

您可以在文章中阅读 Netplan 在 Ubuntu 中的历史和一般用法,使用 Netplan 实现 Linux 网络的声明式方法

在本文中,它指出 Netplan 将以 .netplan 格式生成网络配置文件/run/systemd/network/

Netplan 将声明性 YAML 文件/etc/netplan/作为输入,并根据系统配置为相关网络堆栈后端生成相应的网络/run/systemd/network/配置/run/NetworkManager/

系统服务,systemd-networkd/usr/lib/systemd/network,是管理网络并读取、/run/systemd/network和中的配置文件的后端渲染器/etc/systemd/network

来自systemd-networkd 手册页

systemd-networkd 是管理网络的系统服务。它可以检测和配置出现的网络设备,以及创建虚拟网络设备。

和...

配置文件从位于系统网络目录 /usr/lib/systemd/network、易失性运行时网络目录 /run/systemd/network 和本地管理网络目录 /etc/systemd/network 中的文件中读取。


举一个实际的例子:

查看/etc/netplan/目录。有一个名为的文件,例如00-installer-config.yaml。编辑此文件以更改您的网络设置。之后,运行sudo netplan apply以应用这些更改。然后在/run/systemd/network/目录中查找名为 的文件10-netplan-enp0s3.network。检查此文件的内容,您将看到在 Netplan YAML 配置文件中所做的更改。


您可以在以下页面阅读有关 Netplan 的更多信息:

有关更多信息systemd-networkd可以在上面链接的手册页以及 Arch Linux Wiki 中找到:systemd-networkd

相关内容