Konfigurieren von IP-Netzwerken mit nmcli

Richard Gregory, Peter Boy (pboy) Version F36 onwards Last review: 2023-08-28
Wie man die Netzwerkverbindung mithilfe des Befehlszeilenprogramms nmcli (NetworkManager Command Line Interface) konfiguriert.

Erste Schritte mit nmcli

Das Befehlszeilenprogramm nmcli (NetworkManager Command Line Interface) dient zur Steuerung von NetworkManager und zur Anzeige des Netzwerkstatus. Es kann anstelle von nm-applet oder anderen grafischen Clients verwendet werden. Mit nmcli lassen sich Netzwerkverbindungen erstellen, anzeigen, bearbeiten, löschen, aktivieren und deaktivieren sowie der Status von Netzwerkgeräten steuern und anzeigen.

Das Dienstprogramm nmcli kann sowohl von Benutzern als auch von Skripten zur Steuerung von [application]*NetworkManager verwendet werden:

  • Für Server, Headless-Rechner und Terminals kann nmcli verwendet werden, um NetworkManager direkt ohne grafische Benutzeroberfläche zu steuern, einschließlich des Erstellens, Bearbeitens, Startens und Stoppens von Netzwerkverbindungen und des Anzeigens des Netzwerkstatus.

  • Für Skripte unterstützt nmcli ein kompaktes Ausgabeformat, das sich besser für die Skriptverarbeitung eignet. Es ermöglicht die Integration der Netzwerkkonfiguration anstelle der manuellen Verwaltung von Netzwerkverbindungen.

Das Grundformat eines nmcli-Befehls ist wie folgt:

nmcli [OPTIONEN] OBJEKT { BEFEHL | help }

Dabei kann OBJEKT eine der folgenden Optionen sein: general, networking, radio, connection, device, agent oder monitor. Sie können jedes Präfix dieser Optionen in Ihren Befehlen verwenden. Beispielsweise erzeugen die Befehle nmcli con help, nmcli c help und nmcli connection help dieselbe Ausgabe.

Einige nützliche optionale OPTIONEN für den Einstieg sind:

-t, terse

Dieser Modus eignet sich für die Verarbeitung in Computerskripten, da er eine kurze Ausgabe liefert, die nur die Werte anzeigt.

Beispiel 1. Anzeige einer kompakten Ausgabe
~]$ nmcli -t device
ens3:ethernet:connected:Profile 1
lo:loopback:unmanaged:
-f, field

Diese Option legt fest, welche Felder in der Ausgabe angezeigt werden. Beispiele: NAME,UUID,TYPE,AUTOCONNECT,ACTIVE,DEVICE,STATUS. Sie können ein oder mehrere Felder auswählen. Trennen Sie die Felder, falls Sie mehrere verwenden wollen, nach dem Komma nicht durch Leerzeichen.

Beispiel 2. Festlegen von Feldern in der Ausgabe
~]$ nmcli -f DEVICE,TYPE device
DEVICE  TYPE
ens3    ethernet
lo      loopback

oder noch besser zum Skripten:

~]$ nmcli -t -f DEVICE,TYPE device
ens3:ethernet
lo:loopback
-p, pretty

Diese Option bewirkt, dass nmcli eine für Menschen lesbare Ausgabe erzeugt. Beispielsweise werden Werte ausgerichtet und Überschriften ausgegeben.

Beispiel 3. Anzeige einer Ausgabe im übersichtlichen Modus
~]$ nmcli -p device
=====================
  Status of devices
=====================
DEVICE  TYPE      STATE      CONNECTION
--------------------------------------------------------------
ens3    ethernet  connected  Profile 1
lo      loopback  unmanaged  --
-h, help

Gibt Hilfeinformationen aus.

Das Werkzeug nmcli verfügt über eine integrierte, kontextsensitive Hilfe. Die verfügbaren Optionen und Objektnamen können Sie folgendermaßen auflisten:

~]$ nmcli help

Die verfügbaren Aktionen für ein bestimmtes Objekt auflisten:

~]$ nmcli object help

Zum Beispiel

~]$ nmcli c help

Weitere Ressourcen

Kurze Auswahl von nmcli-Beispielen

Dieser Abschnitt bietet eine kurze Auswahl an nmcli-Beispielen.

Voraussetzungen

Beispiel 4. Überprüfung des Gesamtstatus von NetworkManager
~]$ nmcli general status
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled

Im kompakten Modus:

~]$ nmcli -t -f STATE general
connected
Beispiel 5. Protokollierstatus von NetworkManager ansehen
~]$ nmcli general logging
  LEVEL  DOMAINS
  INFO   PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,A
UTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,
WIMAX,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,DBUS_PROPS,TEAM,CONCHECK,DC
B,DISPATCH
Beispiel 6. Alle Verbindungen ansehen
~]$ nmcli connection show
  NAME       UUID                                  TYPE      DEVICE
Profile 1  db1060e9-c164-476f-b2b5-caec62dc1b05  ethernet    ens3
ens3       aaf6eb56-73e5-4746-9037-eed42caa8a65  ethernet    --
Beispiel 7. Nur derzeit aktive Verbindungen ansehen
~]$ nmcli connection show --active
  NAME       UUID                                  TYPE      DEVICE
Profile 1  db1060e9-c164-476f-b2b5-caec62dc1b05  ethernet     ens3
Beispiel 8. Nur die von NetworkManager erkannten Geräte und deren Status anzeigen
~]$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION
ens3    ethernet  connected  Profile 1
lo      loopback  unmanaged  --

Sie können auch die folgenden Abkürzungen der nmcli-Befehle verwenden:

Tabelle 1. Abkürzungen einiger nmcli-Befehle
nmcli-Befehl Abkürzung

nmcli general status

nmcli g

nmcli general logging

nmcli g log

nmcli connection show

nmcli con show

nmcli connection show --active

nmcli con show -a

nmcli device status

nmcli dev

Weitere Ressourcen

  • Weitere Beispiele finden Sie in der Handbuchseite nmcli-examples(5).

Die nmcli-Optionen

Nachfolgend sind einige der wichtigsten nmcli-Eigenschaftsoptionen aufgeführt:

Verbindung.Typ

Ein Verbindungstyp. Zulässige Werte sind: adsl, bond, bond-slave, bridge, bridge-slave, bluetooth, cdma, ethernet, gsm, infiniband, olpc-mesh, team, team-slave, vlan, wifi, wimax. Jeder Verbindungstyp verfügt über typspezifische Befehlsoptionen. Zum Beispiel:

  • Für eine gsm-Verbindung ist der in einer apn angegebene Zugangspunktname erforderlich.

    nmcli c add connection.type gsm apn Zugangspunktname
  • Ein wifi-Gerät benötigt die in einer ssid angegebene Dienstset-Kennung.

    nmcli c add Verbindung.Typ wifi ssid
    Mein Bezeichner

Die Liste TYPE_SPECIFIC_OPTIONS finden Sie in der Handbuchseite nmcli(1).

Verbindung.Schnittstellenname

Ein für die Verbindung relevanter Gerätename.

nmcli con add Verbindung.Schnittstellenname eth0 type ethernet
Verbindung.ID

Ein Name, der für das Verbindungsprofil verwendet wird. Wenn Sie keinen Verbindungsnamen angeben, wird einer wie folgt generiert:

Verbindung.Typ -Verbindung.Schnittstellenname

Die Verbindung.ID ist der Name eines Verbindungsprofils und darf nicht mit dem Schnittstellennamen verwechselt werden, der ein Gerät bezeichnet (wlan0, ens3, em1). Benutzer können Verbindungen zwar nach Schnittstellen benennen, aber es handelt sich nicht um dasselbe. Für ein Gerät können mehrere Verbindungsprofile verfügbar sein. Dies ist besonders nützlich für Mobilgeräte oder beim Umstecken eines Netzwerkkabels zwischen verschiedenen Geräten. Anstatt die Konfiguration zu bearbeiten, erstellen Sie verschiedene Profile und weisen Sie diese der Schnittstelle nach Bedarf zu. Die Option id bezieht sich ebenfalls auf den Namen des Verbindungsprofils.

Die wichtigsten Optionen für nmcli-Befehle wie show, up, down sind:

id

Eine vom Benutzer einem Verbindungsprofil zugewiesene Identifikationszeichenkette. Die ID kann in nmcli-Verbindungsbefehlen verwendet werden, um eine Verbindung zu identifizieren. Das Feld NAME in der Befehlsausgabe gibt immer die Verbindungs-ID an. Es bezieht sich auf denselben Verbindungsprofilnamen wie der Verbindungsname.

uuid

Eine vom System einem Verbindungsprofil zugewiesene eindeutige Identifikationszeichenkette (uuid). Die uuid kann in nmcli Verbindung-Befehlen verwendet werden, um eine Verbindung zu identifizieren.

Weitere Ressourcen

  • Eine vollständige Liste finden Sie in der Handbuchseite nmcli(1).