systemd-networkd – System Network Manager

systemd-networkd is a system daemon that manages network configurations on Linux systems using systemd. It...

Networking Tools Linux Open Source

systemd-networkd is a system daemon that manages network configurations on Linux systems using systemd. It provides a lightweight alternative to NetworkManager, particularly suited for servers and embedded systems. With simple configuration files, systemd-networkd handles Ethernet, WiFi, bridges, VLANs, and complex network setups efficiently.

Key Features

  • Simple Configuration – INI-style .network files
  • DHCP Client/Server – Built-in DHCP functionality
  • Static Configuration – Easy static IP setup
  • Virtual Networks – Create bridges, VLANs, bonds, and tunnels
  • Link Management – Configure device settings with .link files
  • Minimal Dependencies – Lightweight with low resource usage

Configuration

# /etc/systemd/network/20-wired.network
[Match]
Name=eth0

[Network]
DHCP=yes

# Static IP configuration
# /etc/systemd/network/20-static.network
[Match]
Name=eth0

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=8.8.4.4

Enable and Use

# Enable systemd-networkd
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd

# Enable resolved for DNS
sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved

# Check status
networkctl status
networkctl list

# View specific interface
networkctl status eth0

Advanced Configuration

# Bridge configuration
# /etc/systemd/network/10-bridge.netdev
[NetDev]
Name=br0
Kind=bridge

# /etc/systemd/network/20-bridge.network
[Match]
Name=br0

[Network]
DHCP=yes

Use Cases

systemd-networkd is ideal for servers, containers, embedded systems, minimal installations, and any environment where NetworkManager is too heavy.

View Documentation

Was this article helpful?