systemd-networkd ist der in systemd integrierte Netzwerkmanager zur Konfiguration von Ethernet-Verbindungen, Adressen, Routen, Bridges, VLANs und anderen Netzwerkgeräten. Für eine einfache kabelgebundene Verbindung ist die Einrichtung unkompliziert: Schnittstelle identifizieren, eine .networkKonfigurationsdatei erstellen, sicherstellen, dass kein anderer Manager dieselbe Schnittstelle verwendet, den Netzwerkmanager starten systemd-networkdund das Ergebnis überprüfen.
Diese Anleitung verwendet DHCP über eine kabelgebundene Ethernet-Schnittstelle. Wenn Sie über SSH mit dem Rechner verbunden sind, verwenden Sie vor dem Wechsel des Netzwerkadministrators eine lokale Konsole oder eine Out-of-Band-Verwaltung, da die Übergabe die Verbindung vorübergehend unterbrechen kann.
1. Überprüfen Sie Ihre Ethernet-Schnittstelle und Ihren aktuellen Netzwerkmanager.
Beginnen Sie mit der Auflistung der Links, die systemd kennt:
networkctl list
Suchen Sie nach der kabelgebundenen Schnittstelle, die üblicherweise Namen wie „“ enp3s0, eno1„“ oder „ “ trägt eth0. Sie können auch den Befehl ausführen ip link. Kopieren Sie den Beispiel-Schnittstellennamen nicht einfach blind.

Überprüfen Sie als Nächstes, ob NetworkManager aktiv ist:
systemctl status NetworkManager
NetworkManager und systemd-networkd können parallel betrieben werden, solange sie unterschiedliche Schnittstellen verwalten. Es ist jedoch zu vermeiden, dass beide dieselbe Ethernet-Verbindung verwalten. Die aktuelle Dokumentation zu systemd.network erläutert, wie .networkDateien Schnittstellen zugeordnet werden und wie networkd die Besitzverhältnisse bestimmt.

2. Erstellen Sie ein DHCP-Netzwerkprofil
Lokale Administratorprofile gehören in das /etc/systemd/network/Verzeichnis . Erstellen Sie das Verzeichnis, falls es noch nicht existiert, und bearbeiten Sie anschließend eine Datei wie beispielsweise 20-wired.network:
sudo mkdir -p /etc/systemd/network
sudo nano /etc/systemd/network/20-wired.network
Für eine normale Ethernet-Verbindung, die ihre Adresse von Ihrem Router oder DHCP-Server bezieht, verwenden Sie:
[Match]
Name=enp3s0
[Network]
DHCP=yes
Ersetzen Sie dies enp3s0durch Ihre tatsächliche Schnittstelle. Dateien müssen mit . enden .network. Wenn mehrere Dateien zu einem Link passen, verwendet systemd-networkd die erste übereinstimmende Datei in alphanumerischer Reihenfolge. Daher ist ein spezifischer Name wie beispielsweise 20-wired.networkeinfacher zu verstehen als ein allgemeiner Sammelname.

Optional: Verwenden Sie eine statische IPv4-Adresse.
Falls der Rechner eine feste Adresse benötigt, ersetzen Sie diese DHCP=yesdurch die für Ihr Netzwerk geeigneten Werte:
[Match]
Name=enp3s0
[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=1.1.1.1
DNS=9.9.9.9
Verwenden Sie diese Beispieladressen nur dann wieder, wenn sie mit Ihrem Subnetz übereinstimmen. Die offiziellen systemd.network -ReferenzdokumenteDHCP= enthalten weitere Informationen zu Routing-Optionen.Address=Gateway=DNS=
3. Aktivieren Sie systemd-networkd
Sobald das Profil fertig ist, aktivieren Sie networkd und starten Sie es sofort:
sudo systemctl enable --now systemd-networkd
Wird diese Ethernet-Schnittstelle derzeit von einem anderen Dienst verwaltet, führen Sie die Übergabe über eine lokale Konsole durch. Bei einem Host, der vollständig auf NetworkManager verzichtet, können Sie diesen mit folgendem Befehl stoppen und deaktivieren:
sudo systemctl disable --now NetworkManager
Deaktivieren Sie NetworkManager nicht, wenn Sie ihn noch für WLAN oder andere Schnittstellen benötigen. systemd-networkdNetworkManager konfiguriert zwar die IP-Netzwerkverbindung, die WLAN-Authentifizierung erfordert jedoch normalerweise eine separate Komponente wie iwd oder wpa_supplicant.

4. Konfigurieren Sie DNS bei Bedarf mit systemd-resolved.
systemd-resolvedist für networkd selbst nicht erforderlich, integriert sich aber gut mit networkd und kann über DHCP bezogene DNS-Server verwenden. Falls Ihre Distribution noch keinen anderen Resolver verwendet, aktivieren Sie ihn.
sudo systemctl enable --now systemd-resolved
Die Dokumentation zu systemd-resolved empfiehlt, /etc/resolv.confauf die zugehörige Stub-Datei zu verlinken, wenn resolved der System-Resolver ist. Prüfen Sie zunächst Folgendes:
readlink -f /etc/resolv.conf
Wenn Sie systemd-resolved absichtlich dazu nutzen möchten resolv.conf, Folgendes zu verwenden:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Ersetzen Sie die DNS-Einträge nicht /etc/resolv.conf, wenn Ihre DNS-Distribution oder ein anderes DNS-Tool die Verwaltung übernimmt.

5. Laden Sie die Konfiguration neu und konfigurieren Sie die Schnittstelle neu.
Nach dem Bearbeiten einer .networkDatei muss die Konfiguration von networkd neu geladen werden. Anschließend kann die Zielverbindung explizit neu konfiguriert werden:
sudo networkctl reload
sudo networkctl reconfigure enp3s0
Ersetzen Sie enp3s0<Schnittstellenname> durch Ihren Schnittstellennamen. Das offizielle networkctl-Handbuch dokumentiert beide Befehle. Ein vollständiger systemctl restart systemd-networkdNeustart lädt den Dienst ebenfalls neu, networkctlist aber in der Regel die gezieltere Option.

6. Überprüfen Sie, ob systemd-networkd funktioniert.
Überprüfen Sie den Schnittstellenstatus:
networkctl status enp3s0
Bei einer funktionierenden DHCP-Verbindung sollten Sie sehen, dass die Verbindung mit einer IP-Adresse, einem Standardgateway und in der Regel auch DNS-Informationen konfiguriert ist.

Bestätigen Sie anschließend Routing und Konnektivität:
ip route
ping -c 3 1.1.1.1
Wenn der IP-Ping funktioniert, Webseiten oder Hostnamen aber nicht aufgelöst werden können, testen Sie den DNS-Server mit resolvectl query example.comsystemd-resolved. Bleibt die Schnittstelle weiterhin erreichbar unmanaged, überprüfen Sie den [Match]Namen erneut und stellen Sie sicher, dass kein anderer Netzwerkmanager dasselbe Gerät verwendet.

Für fortgeschrittene Konfigurationen wie Bridges, Bonds, VLANs, Tunnel oder virtuelle Geräte konsultieren Sie bitte die offizielle systemd-networkd-Dienstdokumentation sowie die zugehörigen systemd.netdevReferenzen systemd.link.