TOC

systemd-networkd 网络管理工具

如何判断我是使用 systemd-networkd 还是 NetworkManager

-> % sudo service systemd-networkd status
○ systemd-networkd.service - Network Configuration
     Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; disabled; preset: enabled)
     Active: inactive (dead)
TriggeredBy: ○ systemd-networkd.socket
       Docs: man:systemd-networkd.service(8)
             man:org.freedesktop.network1(5)
   FD Store: 0 (limit: 512)

-> % # sudo service network-manager status
-> % sudo service NetworkManager status
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
     Active: active (running) since Wed 2025-01-01 10:00:48 CST; 10h ago
       Docs: man:NetworkManager(8)
   Main PID: 1373 (NetworkManager)
      Tasks: 4 (limit: 9332)
     Memory: 6.9M (peak: 30.3M swap: 1.8M swap peak: 2.5M)
        CPU: 3.759s
     CGroup: /system.slice/NetworkManager.service
             └─1373 /usr/sbin/NetworkManager --no-daemon

1月 01 16:13:36 dell NetworkManager[1373]: <info>  [1736151216.7653] agent-manager: agent[bbbccb1e3a96b1f1,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered
1月 01 17:08:04 dell NetworkManager[1373]: <info>  [1736154484.1462] agent-manager: agent[fc4834eb60666117,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered
1月 01 17:23:07 dell NetworkManager[1373]: <info>  [1736155387.9889] agent-manager: agent[8f4346a1bc399945,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered
1月 01 17:41:47 dell NetworkManager[1373]: <info>  [1736156507.5578] agent-manager: agent[fc4834eb60666117,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered
1月 01 18:02:02 dell NetworkManager[1373]: <info>  [1736157722.0680] agent-manager: agent[2ab1063edcfd570c,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered
1月 01 18:11:33 dell NetworkManager[1373]: <info>  [1736158293.1638] manager: NetworkManager state is now CONNECTED_SITE
1月 01 18:11:33 dell NetworkManager[1373]: <info>  [1736158293.6198] manager: NetworkManager state is now CONNECTED_GLOBAL
1月 01 19:08:18 dell NetworkManager[1373]: <info>  [1736161698.3661] agent-manager: agent[2ab1063edcfd570c,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered
1月 01 19:35:43 dell NetworkManager[1373]: <info>  [1736163343.1126] agent-manager: agent[2ab1063edcfd570c,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered
1月 01 20:08:18 dell NetworkManager[1373]: <info>  [1736165298.6409] agent-manager: agent[bbbccb1e3a96b1f1,:1.85/org.gnome.Shell.NetworkAgent/1000]: agent registered

二者的区别

以下是 systemd-networkd 和 NetworkManager 的主要区别对比表格:

对比项目 systemd-networkd NetworkManager
设计目标 为服务器、嵌入式设备等提供简单、轻量级、稳定的网络配置解决方案 为桌面和移动环境提供功能全面、用户友好、动态的网络管理
适用场景 服务器环境、嵌入式系统等对资源占用和稳定性要求高,无需频繁更改网络配置的场景 桌面系统、移动设备等需要频繁切换网络连接,对图形化管理和动态配置有需求的场景
配置方式 通过编辑/etc/systemd/network/目录下的.network配置文件进行配置 命令行工具nmcli、图形界面工具(如 GNOME 网络管理器)以及nmtui等多种方式
功能特点 对复杂网络拓扑和虚拟网络支持较好,如 VLAN、网络接口绑定等;与 systemd 其他组件紧密集成 自动检测和管理多种网络设备及连接类型,支持 Wi-Fi、VPN、移动宽带等;设备管理功能强大,可自动切换网络连接
运行环境和依赖关系 作为 systemd 组件之一,依赖 systemd 其他组件,在 systemd 初始化系统环境运行良好 依赖各种网络相关后端库和驱动程序,如 wpa_supplicant 用于 Wi-Fi 连接;在桌面环境下与桌面通知、电源管理等系统集成较好
资源占用 轻量级,资源占用少 相对较重,因为要支持多种功能和图形界面等
稳定性 通常具有较高稳定性,与 systemd 紧密集成 在大多数情况下稳定,但由于功能复杂,可能出现兼容性问题等

从 NetworkManager 切换到 systemd-networkd

大多数主流系统都是默认采用 NetworkManager 来管理网络,但是都支持切换到 systemd-networkd。

参考资料与拓展阅读

如果你有魔法,你可以看到一个评论框~