Frequently Asked Question
What does systemd-networkd do and when should I use it?
systemd-networkd is a network configuration daemon: it reads small INI-style .network,
.netdev, and .link files in /etc/systemd/network/ and brings up interfaces
accordingly. It handles static addressing, DHCP (client and server), VLANs, bridges,
bonds, tunnels, and most of what a Linux router or server needs, all declaratively. On
systems where it is the active network manager, typically servers, containers, and
embedded images, it is paired with systemd-resolved for DNS.
The main alternative is NetworkManager, which is the default on most desktops and
laptops because it understands roaming Wi-Fi, VPNs, captive portals, and per-user
profiles better. A reasonable rule is: use NetworkManager on a workstation,
systemd-networkd on a server or appliance where the configuration is static and
should live in version control. The two should not run on the same machine at the same
time.