linux-rhel-centos-fedora networking networkmanager nmcli rhel rocky-linux

nmcli: NetworkManager CLI Configuration (Artikel 079)

Beherrschung des nmcli-Werkzeugs zur Netzwerk-Konfiguration unter RHEL. Erfahren Sie alles über Verbindungs-Profile, Geräte-Management und das Debugging von Netzwerk-Interfaces.

# nmcli Deep Dive: Netzwerk-Management auf der Kommandozeile

TL;DR / Management Summary Vergessen Sie das manuelle Editieren von Files in /etc/sysconfig/network-scripts/. Unter RHEL, Rocky und Alma ist nmcli (NetworkManager CLI) das Gesetz. Es ist ein mächtiges Tool, das persistente Konfigurationen schreibt, ohne dass man die genauen Dateipfade kennen muss. Wer nmcli beherrscht, kann komplexe Netzwerk-Setups (Bonds, Bridges, VLANs) in Sekunden konfigurieren und im laufenden Betrieb umschalten.


# 1. Einführung & Architektur

Connections vs. Devices.

Der NetworkManager unterscheidet zwischen zwei Dingen:

  1. Devices: Die physikalische oder virtuelle Hardware (z.B. eth0).
  2. Connections: Die Konfigurations-Profile (z.B. “Office-Netz”, “Static-IP”).

Einem Device kann immer nur eine Connection gleichzeitig zugewiesen sein.

graph LR
    A[Hardware: NIC eth0] --- B[NetworkManager Daemon]
    B --- C[Connection Profile: 'Internal']
    B --- D[Connection Profile: 'VPN']
    C -->|Active| A
    E[nmcli] -->|Command| B
    F[nmtui] -->|UI| B

# 2. Grundlegende Befehle

Sichtbarkeit schaffen.

# Status-Check

# Übersicht aller Geräte
nmcli device status

# Übersicht aller Profile
nmcli connection show

# Verbindung bearbeiten

Wir setzen eine statische IP für das Profil eth0.

sudo nmcli con mod "eth0" \
    ipv4.addresses 192.168.1.10/24 \
    ipv4.gateway 192.168.1.1 \
    ipv4.dns "1.1.1.1 8.8.8.8" \
    ipv4.method manual

# 3. Komplexe Setups

Bonding und Bridges.

# Beispiel: Eine Linux-Bridge erstellen (für VMs)

# 1. Bridge-Interface anlegen
sudo nmcli con add type bridge con-name br0 ifname br0

# 2. Physikalische Karte als Slave hinzufügen
sudo nmcli con add type ethernet con-name br0-slave ifname eth0 master br0

# 3. IP auf der Bridge setzen
sudo nmcli con mod br0 ipv4.addresses 10.0.0.5/24 ipv4.method manual

# 4. Aktivieren
sudo nmcli con up br0

# 4. Day-2 Operations: Aktivierung & Reload

Änderungen wirksam machen.

Netplan-Nutzer kennen apply, nmcli-Nutzer müssen die Verbindung “hochfahren”.

# Konfiguration neu einlesen (nach manuellem File-Edit)
sudo nmcli connection reload

# Verbindung aktivieren (wendet Änderungen sofort an)
sudo nmcli connection up "eth0"

# 5. Troubleshooting & “War Stories”

Wenn nmcli nicht tut, was es soll.

# Story 1: “Die unsichtbare Änderung”

Symptom: Der Admin ändert die IP via nmcli con mod, aber ip addr zeigt immer noch die alte Adresse. Ursache: con mod ändert nur die Konfigurationsdatei auf der Disk. Der NetworkManager wendet diese nicht automatisch auf das laufende Device an. Lösung: Führen Sie sudo nmcli connection up <name> aus, um das Profil neu auf das Device zu laden.

# Story 2: “Das Device ist nicht verfügbar”

Symptom: nmcli con up schlägt fehl mit “Device not managed”. Ursache: Das Device wurde in einer Konfig (z.B. /etc/NetworkManager/NetworkManager.conf) als “unmanaged” markiert oder wird von einem anderen Stack (z.B. systemd-networkd) kontrolliert. Lösung: Prüfen Sie die NetworkManager.conf auf den Eintrag unmanaged-devices.


# 6. Fazit & Empfehlung

  • Syntax: nmcli unterstützt Tab-Completion. Nutzen Sie sie! Es spart Tipparbeit bei langen Keys wie 802-3-allow-multi-id.
  • Interaktiv: Wenn nmcli zu kompliziert ist, nutzen Sie nmtui. Es ist eine grafische Oberfläche für das Terminal, die den gleichen Dämon steuert.
  • Best Practice: Benennen Sie Ihre Connections sinnvoll (z.B. nach der Funktion: prod-data-net).

# Anhang: Cheatsheet

Aufgabe Befehl
Alle Details sehen nmcli con show <name>
Interface Up/Down nmcli dev connect/disconnect <if>
WLAN Scan nmcli dev wifi list
IP via DHCP erzwingen nmcli con mod <name> ipv4.method auto
Route hinzufügen nmcli con mod <name> +ipv4.routes "10.0.0.0/8 10.0.0.1"
Device Info (JSON) nmcli -t -f all dev show