我已运行以下命令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 是管理网络的系统服务。它可以检测和配置出现的网络设备,以及创建虚拟网络设备。
和...
配置文件从位于系统网络目录 /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