Inhaltsverzeichnis

Netzwerk-Konfiguration

Kurzfassung: Linux bietet mehrere Tools zur Netzwerk-Konfiguration: netplan (deklarativ), NetworkManager (dynamisch), nmtui (TUI) und systemd-networkd (systemd-integriert). Die Wahl hängt von Distribution und Anwendungsfall ab. Zielgruppe: Systemadministratoren zur Netzwerkverwaltung.

Übersicht

Die Netzwerk-Konfiguration unter Linux hat sich über die Jahre weiterentwickelt. Moderne Systeme nutzen verschiedene Ansätze:

Diese Tools können teilweise parallel existieren, wobei meist eines als primäres Backend dient.

Voraussetzungen

Anleitung

netplan - Deklarative Konfiguration

netplan ist ein Abstraktions-Layer, der YAML-Konfigurationen in Backend-spezifische Befehle übersetzt (NetworkManager oder systemd-networkd).

Installation und Status:

# netplan installieren (meist vorinstalliert auf Ubuntu)
sudo apt install netplan.io
 
# Aktuelle Konfiguration anzeigen
sudo netplan get
 
# Welches Backend wird genutzt?
cat /etc/netplan/*.yaml | grep renderer
# renderer: networkd  → systemd-networkd
# renderer: NetworkManager → NetworkManager

Konfigurationsdateien:

# Haupt-Konfigurationsverzeichnis
ls /etc/netplan/
 
# Typische Dateien:
# 01-netcfg.yaml
# 01-network-manager-all.yaml
# 50-cloud-init.yaml (bei Cloud-Instanzen)
 
# Konfiguration bearbeiten
sudo nano /etc/netplan/01-netcfg.yaml

DHCP-Konfiguration:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: false

Statische IP-Konfiguration:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
        search:
          - example.com

Mehrere IP-Adressen:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 192.168.1.100/24
        - 192.168.1.101/24
        - 10.0.0.50/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

WLAN-Konfiguration:

network:
  version: 2
  renderer: NetworkManager
  wifis:
    wlan0:
      dhcp4: true
      access-points:
        "MeinWLAN":
          password: "GeheimesPasswort"

netplan Befehle:

# Konfiguration testen (ohne Anwenden)
sudo netplan try
 
# Konfiguration anwenden
sudo netplan apply
 
# Debug-Modus
sudo netplan --debug apply
 
# Generierte Backend-Konfiguration anzeigen
sudo netplan generate
ls /run/systemd/network/  # für networkd
ls /run/NetworkManager/    # für NetworkManager
 
# Syntax prüfen
sudo netplan get
WICHTIG: netplan try nutzen! Nach 120 Sekunden wird automatisch zur alten Konfiguration zurückgekehrt, falls nicht bestätigt wird.

NetworkManager - Dynamische Verwaltung

NetworkManager ist der Standard für Desktop-Systeme und unterstützt dynamische Netzwerk-Verwechslungen (WiFi-Roaming, VPN, etc.).

Installation und Status:

# NetworkManager installieren
sudo apt install network-manager
 
# Status prüfen
sudo systemctl status NetworkManager
 
# NetworkManager aktivieren
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
 
# Version anzeigen
nmcli --version

nmcli - Kommandozeilen-Interface:

Übersicht:

# Alle Verbindungen anzeigen
nmcli connection show
 
# Aktive Verbindungen
nmcli connection show --active
 
# Geräte-Status
nmcli device status
 
# Detaillierte Geräte-Info
nmcli device show eth0
 
# WiFi-Netzwerke scannen
nmcli device wifi list

Verbindung erstellen:

# Ethernet mit DHCP
sudo nmcli connection add type ethernet con-name eth0-dhcp ifname eth0
 
# Ethernet mit statischer IP
sudo nmcli connection add type ethernet con-name eth0-static ifname eth0 \
  ip4 192.168.1.100/24 gw4 192.168.1.1
 
# DNS-Server hinzufügen
sudo nmcli connection modify eth0-static ipv4.dns "8.8.8.8 8.8.4.4"
 
# WiFi-Verbindung
sudo nmcli device wifi connect "SSID" password "Passwort"
 
# Oder mit allen Optionen
sudo nmcli connection add type wifi con-name mein-wifi ifname wlan0 \
  ssid "MeinWLAN" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "GeheimesPasswort"

Verbindungen verwalten:

# Verbindung aktivieren
sudo nmcli connection up eth0-static
 
# Verbindung deaktivieren
sudo nmcli connection down eth0-static
 
# Verbindung löschen
sudo nmcli connection delete eth0-static
 
# Verbindung bearbeiten
sudo nmcli connection edit eth0-static
 
# Verbindung neu laden
sudo nmcli connection reload
 
# Verbindungsdetails ändern
sudo nmcli connection modify eth0-static ipv4.addresses 192.168.1.200/24
sudo nmcli connection modify eth0-static ipv4.gateway 192.168.1.1
sudo nmcli connection modify eth0-static ipv4.method manual

Geräte-Management:

# Gerät neu verbinden
sudo nmcli device connect eth0
 
# Gerät trennen
sudo nmcli device disconnect eth0
 
# Gerät verwalten (von unmanaged zu managed)
sudo nmcli device set eth0 managed yes
 
# WiFi aktivieren/deaktivieren
nmcli radio wifi on
nmcli radio wifi off

nmtui - Text User Interface

nmtui bietet ein interaktives Terminal-Interface für NetworkManager.

# nmtui starten
sudo nmtui
 
# Oder direkt in spezifischen Modus:
sudo nmtui-edit       # Verbindungen bearbeiten
sudo nmtui-connect    # Verbindung aktivieren
sudo nmtui-hostname   # Hostname setzen

nmtui Features:

nmtui ist besonders hilfreich auf Servern ohne grafische Oberfläche oder bei Remote-Zugriff über SSH.

systemd-networkd - Systemd-Integration

systemd-networkd ist das native Netzwerk-Management von systemd, leichtgewichtig und ideal für Server.

Aktivierung:

# systemd-networkd aktivieren
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
 
# Status prüfen
sudo systemctl status systemd-networkd
 
# NetworkManager deaktivieren (wenn gewünscht)
sudo systemctl disable NetworkManager
sudo systemctl stop NetworkManager
 
# Wichtig: systemd-resolved für DNS
sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved

Konfigurationsdateien:

# Verzeichnis für Netzwerk-Konfiguration
ls /etc/systemd/network/
 
# Dateien werden alphabetisch geladen:
# 10-eth0.network
# 20-wlan0.network
 
# Runtime-Konfiguration (höchste Priorität)
ls /run/systemd/network/
 
# System-Konfiguration
ls /lib/systemd/network/

DHCP-Konfiguration:

# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0
 
[Network]
DHCP=yes

Statische IP-Konfiguration:

# /etc/systemd/network/10-eth0.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
Domains=example.com
 
[Route]
Destination=0.0.0.0/0
Gateway=192.168.1.1

Mehrere IP-Adressen:

[Match]
Name=eth0
 
[Network]
Address=192.168.1.100/24
Address=192.168.1.101/24
Address=10.0.0.50/24
Gateway=192.168.1.1
DNS=8.8.8.8

VLAN-Konfiguration:

# /etc/systemd/network/10-eth0.netdev
[NetDev]
Name=vlan10
Kind=vlan
 
[VLAN]
Id=10
 
# /etc/systemd/network/11-vlan10.network
[Match]
Name=vlan10
 
[Network]
Address=192.168.10.100/24

Bridge-Konfiguration:

# /etc/systemd/network/10-bridge.netdev
[NetDev]
Name=br0
Kind=bridge
 
# /etc/systemd/network/20-br0.network
[Match]
Name=br0
 
[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1

systemd-networkd Befehle:

# Netzwerk-Status
networkctl status
 
# Spezifisches Interface
networkctl status eth0
 
# Liste aller Interfaces
networkctl list
 
# Konfiguration neu laden
sudo networkctl reload
 
# Interface neu konfigurieren
sudo networkctl reconfigure eth0
 
# DNS-Auflösung (über systemd-resolved)
resolvectl status
resolvectl query example.com

DNS-Konfiguration

systemd-resolved (modern):

# Status anzeigen
resolvectl status
 
# DNS-Server für Interface setzen (temporär)
sudo resolvectl dns eth0 8.8.8.8 1.1.1.1
 
# Domains für Interface
sudo resolvectl domain eth0 example.com
 
# DNS-Cache leeren
sudo resolvectl flush-caches
 
# Symlink für /etc/resolv.conf (permanent)
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Klassische /etc/resolv.conf:

# Nur wenn systemd-resolved nicht genutzt wird
sudo nano /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com

Welches Tool verwenden?

Entscheidungshilfe:

netplan + systemd-networkd:

NetworkManager:

systemd-networkd (direkt):

nmtui:

Troubleshooting

Verbindungsprobleme diagnostizieren:

# Interface-Status
ip addr show
ip link show
 
# Routing-Tabelle
ip route show
 
# DNS-Auflösung testen
nslookup google.com
dig google.com
resolvectl query google.com
 
# Ping-Test
ping -c 4 8.8.8.8
ping -c 4 google.com
 
# Traceroute
traceroute google.com
mtr google.com
 
# Aktive Verbindungen
ss -tunap
netstat -tunap

Logs analysieren:

# NetworkManager Logs
sudo journalctl -u NetworkManager -n 50 -f
 
# systemd-networkd Logs
sudo journalctl -u systemd-networkd -n 50 -f
 
# Kernel-Netzwerk-Logs
sudo dmesg | grep -i network
sudo dmesg | grep eth0
 
# netplan Logs
sudo journalctl -t netplan

Interface zurücksetzen:

# Mit ip-Kommando
sudo ip link set eth0 down
sudo ip link set eth0 up
 
# Mit NetworkManager
sudo nmcli device disconnect eth0
sudo nmcli device connect eth0
 
# Mit systemd-networkd
sudo networkctl reconfigure eth0
 
# Kompletter Netzwerk-Neustart
sudo systemctl restart NetworkManager
# oder
sudo systemctl restart systemd-networkd

Hinweise

Best Practices: - Vor Änderungen immer Backup: sudo cp /etc/netplan/*.yaml /root/backup/ - Bei Remote-Zugriff: netplan try verwenden (Auto-Rollback nach 120s) - Nur ein primäres Netzwerk-Tool verwenden (NetworkManager ODER networkd) - DNS mit systemd-resolved für konsistente Auflösung - YAML-Syntax in netplan: Einrückung mit Leerzeichen (keine Tabs!) - nmtui für schnelle Änderungen auf Servern ideal
Häufige Fehler vermeiden: - netplan YAML: Tabs statt Leerzeichen → Syntax-Fehler! - Mehrere Netzwerk-Manager parallel → Konflikte möglich - /etc/resolv.conf manuell editieren wenn systemd-resolved aktiv → wird überschrieben - netplan apply ohne try auf Remote-Server → Lock-out-Risiko! - NetworkManager und systemd-networkd gleichzeitig für gleiche Interfaces - DHCP auf statisch ändern ohne Gateway/DNS → keine Verbindung

Siehe auch

Quellen