关于 /etc/network/interfacessystemd-networkdNetworkManagerNetplan 的作用和关系。

networking.service #

这是 debian 系统默认配置网络的 systemd 服务,通过调用 ifup/ifdown 命令来应用 /etc/network/interfaces 文件中的配置。ifup/ifdown 命令由 ifupdown 软件包提供。

另外有个 ifupdown2 软件包是用 Python 重写的 ifupdown 替代品,据说有更好的性能以及一些新功能,不过默认没启用。

systemd-networkd.service #

另外一个配置网络的 systemd 服务。实际调用的二进制文件是 /lib/systemd/systemd-networkd,提供给用户端的命令是 networkctl

通过读取 systemd.network 格式的配置文件来应用网络。例如 /etc/systemd/network/10-eth0.network

NetworkManager.service #

主要用于桌面环境下配置网络的 systemd 服务,有独立的配置文件、图形界面和命令行工具 nmcli 来管理网络。

Netplan #

配置网络的抽象层工具,它本身不直接配置网络,而是充当一个“翻译器”。可以使用统一的 YAML 语法来编写配置文件,并允许用户在不同的后端 (systemd-networkdNetworkManager) 之间切换。

比如 netplan generate 生成对应后端的配置文件,netplan apply 应用配置等。