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.

Further reading and video