Frequently Asked Question

What's the difference between NetworkManager and systemd-networkd?

Both are services that bring up network interfaces, request DHCP leases, set routes, and configure DNS. The difference is the audience. NetworkManager is the desktop default: it has a graphical applet, a nmcli and nmtui command-line and TUI front-end, knows how to roam between Wi-Fi networks, handles VPNs and mobile broadband, and reacts dynamically when you plug in a cable. Almost every desktop distribution ships it.

systemd-networkd is the server and embedded counterpart: minimal, fast to start, declarative (configured by .network and .netdev files in /etc/systemd/network/), and integrates tightly with the rest of systemd. It excels at static IPs, VLANs, bridges, bonds, and the kind of set-it-and-forget-it networking you want on a server. Pick whichever your distribution defaults to: NetworkManager on Fedora Workstation and Ubuntu Desktop, systemd-networkd on Arch servers and some Ubuntu Server profiles (often via netplan).

Further reading and video