systemd tips, 2025 edition

Drop-ins

Basics

systemctl edit servicename
systemctl revert servicename
systemctl cat servicename

Enable debug mode for systemd-networkd

systemctl edit systemd-networkd

And then add the following to the newly created drop-in:

[Service]
Environment=SYSTEMD_LOG_LEVEL=debug

Units

Simple dhcp config

/etc/systemd/network/00-wired.network

[Match]
Name=enp1s0

[Network]
DHCP=yes

Bridge

3 files are needed to make it work. Each file is described below

/etc/systemd/network/10-bridge.netdev

[NetDev]
Name=br0
Kind=bridge

/etc/systemd/network/20-bridge.network

[Match]
Name=br0

[Network]
Address=192.168.29.99/24
Gateway=192.168.29.1
DNS=192.168.29.1

/etc/systemd/network/30-enp3s0.network

[Match]
Name=enp3s0

[Network]
Bridge=br0

DHCP Server

/etc/systemd/network/eno1.network

[Match]
Name=eno1

[Link]
RequiredForOnline=yes

[Network]
Address=192.168.40.1/24
Address=fddb:40::1/16
DNS=192.168.40.1
DHCPServer=yes
IPv6AcceptRA=no
IPv6SendRA=yes

[IPv6SendRA]
EmitDNS=yes
DNS=fddb:40::1

[IPv6Prefix]
Prefix=fddb:40::/64

[DHCPServer]
ServerAddress=192.168.40.1/24
EmitDNS=yes
DNS=192.168.40.1
EmitRouter=Yes
Router=192.168.40.1
PoolOffset=100
PoolSize=100
BindToInterface=yes