我试图了解网络服务和 systemd-networkd 之间的关系。
我正在试验 ubuntu 20.01 服务器,它最初使用 netplan 来配置网络。在一些文章中,我发现网上有人建议删除 netplan 和 systemd-networkd 并仅使用网络服务。我想尝试一下 systemd-networkd,所以我删除了 netplan 并手动配置了 systemd-networkd。一切正常,但我注意到我也有网络服务(我猜默认情况下就有网络服务?)。
systemctl status networking
显示:
ifquery: couldn't open interfaces file "/etc/network/interfaces": No such file or directory
我认为这是正常的,因为 systemd 正在处理接口。但是不同的服务(例如 postfix 和 bind)在 /etc/network 子目录下创建了一些文件(if-up.d、if-down.d 等)
所以,我知道网络服务可以在没有 systemd-networkd 的情况下工作,但反过来也可以吗(systemd-networkd 没有网络)?
两者之间有什么关系和/或区别?两者同时运行可以吗?
提前致谢!
答案1
是的,如果您已改用 systemd-networkd 来管理网络,则可以删除 ifupdown 软件包。我自己最近也开始这样做了。您可以同时运行两者,但只需让其中一个负责管理任何给定的网络接口。它们都默认不管理接口,因此只需选择一个进行配置来管理您的网络接口,另一个将不受影响。
ifupdown 包是 debian 用来根据 /etc/network/interface 中的配置配置网络的传统包,因此仍然默认安装并经常在服务器上使用。如今,默认桌面安装网络管理器来管理网络,并有一个图形用户界面。还有很多其他套餐可供选择。
ifupdown 基于一些在启动期间运行的简单 shell 脚本。 systemd-networkd 是 systemd init 替代品的一部分,是一个即插即用的 C 编码系统,而不是由 shell 脚本拼凑而成。它能够管理启动后插入的网络接口,并且不需要延迟启动过程,任意等待以尝试并确保在运行 shell 脚本来管理它们之前已发现所有网络接口,因此应该结果启动速度稍快一些。