Nutzen Sie alle Möglichkeiten des NetworkManager-Netzwerkverbindungsverwaltungswerkzeugs in der Linux-Befehlszeile mit dem nmcli-Tool.

Das Tool greift direkt auf die API zu, um auf die Funktionen des NetworkManager zuzugreifen.
Es wurde 2010 eingefĂŒhrt und ist fĂŒr viele zu einer alternativen Methode zur Konfiguration von Netzwerkinterfaces und -verbindungen geworden. Auch wenn einige immer noch verwenden. Da nmcli ein Kommandozeilen-Interface (CLI) ist, das fĂŒr die Nutzung in Terminalfenstern und Skripten gedacht ist, eignet es sich hervorragend fĂŒr Systemadministratoren, die ohne GUI arbeiten.
Die Syntax der ncmli-Befehle
sieht allgemein so aus:
$ nmcli - options sind Parameter, die die Feinheiten der Funktionsweise von nmcli bestimmen,
- section (Sektion) bestimmt, welche Funktionen des Tools verwendet werden,
- action (Aktion) ermöglicht es, anzugeben, was genau getan werden soll.
Es gibt insgesamt 8 Sektionen, von denen jede mit einer bestimmten Gruppe von Befehlen (Aktionen) verbunden ist:
- Hilfe gibt Hilfe zu den ncmcli-Befehlen und deren Verwendung aus.
- Allgemein gibt den Status des NetworkManagers und die globale Konfiguration zurĂŒck.
- Netzwerk enthÀlt Befehle zur Abfrage des Status der Netzwerkverbindung und zum Aktivieren/Deaktivieren von Verbindungen.
- Radio enthÀlt Befehle zur Abfrage des Status einer WiFi-Netzwerkverbindung und zum Aktivieren/Deaktivieren von Verbindungen.
- Monitor enthĂ€lt Befehle zur Ăberwachung der AktivitĂ€t des NetworkManagers und zur Beobachtung von Ănderungen des Status der Netzwerkverbindungen.
- Verbindung enthĂ€lt Befehle zur Verwaltung von Netzwerkschnittstellen, um neue Verbindungen hinzuzufĂŒgen und bestehende zu löschen.
- GerĂ€t wird hauptsĂ€chlich verwendet, um Parameter zu Ă€ndern, die mit GerĂ€ten (z. B. dem Schnittstellennamen) verbunden sind, oder um GerĂ€te ĂŒber eine vorhandene Verbindung zu verbinden.
- Geheimnis registriert nmcli als 'geheimen Agenten' des NetworkManagers, der geheime Nachrichten ĂŒberwacht. Diese Sektion wird selten verwendet, da nmcli standardmĂ€Ăig so funktioniert, wenn es eine Verbindung zu Netzwerken herstellt.
Einfach Beispiele
Stellen Sie vor Beginn sicher, dass der NetworkManager lÀuft und nmcli mit ihm kommunizieren kann:
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabledOft beginnt man mit der ĂberprĂŒfung aller Profile fĂŒr Netzwerkverbindungen:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9Dieser Befehl verwendet die Aktion show fĂŒr den Abschnitt Connection.
Auf der Testmaschine lÀuft Ubuntu 20.04. In diesem Fall haben wir drei kabelgebundene Verbindungen gefunden: enp0s3, enp0s8 und enp0s9.
Verwaltung von Verbindungen
Es ist wichtig zu verstehen, dass wir mit dem Begriff Connection in nmcli eine EntitĂ€t meinen, die alle Informationen ĂŒber die Verbindung enthĂ€lt. Mit anderen Worten, es handelt sich um die Netzwerkkonfiguration. Eine Connection kapselt alle Informationen zu Verbindungen, einschlieĂlich der Datenlink- und IP-Adressierungsinformationen. Dies sind die Schichten 2 und 3 im OSI-Netzwerkmodell.
Wenn Sie ein Netzwerk in Linux konfigurieren, richten Sie normalerweise Verbindungen ein, die letztendlich an NetzwerkgerĂ€te gebunden sind, die wiederum Netzwerkinterfaces sind, die auf dem Computer installiert sind. Wenn ein GerĂ€t eine Verbindung verwendet, wird dies als aktiv oder aktiviert betrachtet. Wenn die Verbindung nicht verwendet wird, ist sie inaktiv oder zurĂŒckgesetzt.
HinzufĂŒgen von Netzwerkverbindungen
Das ncmli-Tool ermöglicht es, schnell Verbindungen hinzuzufĂŒgen und sofort einzurichten. Um beispielsweise Wired connection 2 (mit enp0s8) hinzuzufĂŒgen, muss der folgende Befehl mit Superuser-Rechten ausgefĂŒhrt werden:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) erfolgreich hinzugefĂŒgt.In der Option type geben wir an, dass es sich um eine Ethernet-Verbindung handelt, und in der Option ifname (Schnittstellenname) geben wir das Netzwerkinterface an, das wir verwenden möchten.
Das wird nach dem AusfĂŒhren des Befehls sein:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet -- Eine neue Verbindung wurde erstellt, ethernet-enp0s8. Ihr wurde eine UUID zugewiesen, der Verbindungstyp ist Ethernet. Aktivieren wir sie mit dem Befehl up:
$ nmcli connection up ethernet-enp0s8
Connection erfolgreich aktiviert (D-Bus aktiver Pfad: /org/freedesktop/NetworkManager/ActiveConnection/4)Wir ĂŒberprĂŒfen erneut die Liste der aktiven Verbindungen:
$ nmcli connection show --active
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9Es wurde eine neue Ethernet-Verbindung ethernet-enp0s8 hinzugefĂŒgt, sie ist aktiv und verwendet das Netzwerkinterface enp0s8.
Einstellungen der Verbindungen
Das ncmli-Tool ermöglicht es Ihnen, die Einstellungen bereits vorhandener Verbindungen einfach zu Àndern. Zum Beispiel, wenn Sie die dynamische (DHCP) IP-Adresse in eine statische IP-Adresse Àndern möchten.
Angenommen, wir möchten die IP-Adresse auf 192.168.4.26 festlegen. DafĂŒr verwenden wir zwei Befehle. Der erste legt direkt die IP-Adresse fest, der zweite wechselt die Methode zur Vergabe der IP-Adresse auf den Wert âmanuellâ (manual):
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manualVergessen Sie nicht, auch die Subnetzmaske festzulegen. FĂŒr unsere Testverbindung ist dies 255.255.255.0 oder mit /24 fĂŒr das Classless Inter-Domain Routing (CIDR).
Damit die Ănderungen wirksam werden, mĂŒssen Sie die Verbindung deaktivieren und dann erneut aktivieren:
$ nmcli connection down ethernet-enp0s8
Verbindung 'ethernet-enp0s8' erfolgreich deaktiviert (D-Bus aktiver Pfad: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Verbindung erfolgreich aktiviert (D-Bus aktiver Pfad: /org/freedesktop/NetworkManager/ActiveCWenn Sie im Gegenteil DHCP einrichten möchten, verwenden Sie statt manual auto:
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoArbeit mit GerÀten
DafĂŒr verwenden wir den Abschnitt GerĂ€t.
ĂberprĂŒfung des Status der GerĂ€te
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected ethernet-enp0s8
enp0s9 ethernet connected Wired connection 3
lo loopback unmanaged -- Anfordern von Informationen ĂŒber das GerĂ€t
DafĂŒr verwenden wir die Aktion show im Abschnitt GerĂ€t (der GerĂ€tename muss unbedingt angegeben werden). Das Tool zeigt eine Menge Informationen, oft auf mehreren Seiten.
Schauen wir uns das Interface enp0s8 an, das unsere neue Verbindung verwendet. Stellen wir sicher, dass es genau die IP-Adresse verwendet, die wir zuvor festgelegt haben:
$ nmcli device show enp0s8
GENERAL.DEVICE: enp0s8
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:81:16:20
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ethernet-enp0s8
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.4.26/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255Es gibt eine Menge Informationen. Lassen Sie uns das Wichtigste hervorheben:
- Name des Netzwerkinterfaces: enp0s8.
- Verbindungstyp: kabelgebundenes Ethernet.
- Wir sehen die MAC-Adresse des GerÀts.
- Der Maximum Transmission Unit (MTU) ist angegeben â die maximale GröĂe eines Datenblocks eines Pakets, der vom Protokoll ohne Fragmentierung ĂŒbermittelt werden kann.
- GerÀt momentan verbunden.
- Verbindungsname, der das GerÀt verwendet: ethernet-enp0s8.
- Das GerÀt verwendet die IP-Adresse, die wir zuvor eingestellt haben: 192.168.4.26/24.
Andere Informationen beziehen sich auf die Standardwerte fĂŒr Routing und Gateway der Verbindung. Diese hĂ€ngen vom spezifischen Netzwerk ab.
Interaktiver nmcli-Editor
Der nmcli hat auch einen einfachen interaktiven Editor, in dem es manchen möglicherweise leichter fĂ€llt zu arbeiten. Um ihn zu starten, zum Beispiel fĂŒr die Verbindung ethernet-enp0s8, verwenden Sie die Aktion edit:
$ nmcli connection edit ethernet-enp0s8Er enthĂ€lt auch eine kleine Hilfe, die jedoch in der GröĂe der Konsolenversion unterlegen ist:
===| nmcli interaktiver Verbindungseditor |===
Bearbeiten der bestehenden '802-3-ethernet'-Verbindung: 'ethernet-enp0s8'
Tippen Sie 'help' oder '?' fĂŒr verfĂŒgbare Befehle.
Tippen Sie 'print', um alle Eigenschaften der Verbindung anzuzeigen.
Tippen Sie 'describe [<setting>.<prop>]' fĂŒr eine detaillierte Beschreibung der Eigenschaften.
Sie können die folgenden Einstellungen bearbeiten: Verbindung, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>Wenn Sie den Befehl print eingeben und die Eingabetaste drĂŒcken, zeigt nmcli alle Eigenschaften der Verbindung an:
===============================================================================
Verbindungsprofil-Details (ethernet-enp0s8)
===============================================================================
connection.id: ethernet-enp0s8
connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: enp0s8
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (Standard)
connection.multi-connect: 0 (Standard)
connection.auth-retries: -1
connection.timestamp: 1593967212
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (Standard)
connection.secondaries: --Um beispielsweise die DHCP-Eigenschaft fĂŒr die Verbindung festzulegen, geben Sie goto ipv4 ein und drĂŒcken Sie Enter:
nmcli> goto ipv4
Sie können die folgenden Eigenschaften bearbeiten: Methode, DNS, DNS-Suche,
dns-Optionen, dns-PrioritÀt, Adressen, Gateway, Routen, Routen-Metrik,
Routentabelle, Routing-Regeln, auto-Routen ignorieren, auto-DNS ignorieren,
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname,
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail,
dad-timeout
nmcli ipv4>Geben Sie dann set method auto ein und drĂŒcken Sie Enter:
nmcli ipv4> set method auto
Möchten Sie auch 'ipv4.addresses' löschen? [ja]:Wenn Sie die statische IP-Adresse löschen möchten, drĂŒcken Sie EnterAndernfalls geben Sie no ein und drĂŒcken Sie Enter. Sie können es speichern, wenn Sie denken, dass es in Zukunft nĂŒtzlich sein wird. Aber selbst mit einer gespeicherten statischen IP-Adresse wird DHCP verwendet, wenn die Methode auf auto eingestellt ist.
Verwenden Sie den Befehl save, um Ănderungen zu speichern:
nmcli ipv4> save
Verbindung 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) erfolgreich aktualisiert.
nmcli ipv4>Geben Sie quit ein, um den interaktiven nmcli-Editor zu verlassen. Wenn Sie Ihre Entscheidung ĂŒber das Verlassen Ă€ndern möchten, verwenden Sie den Befehl back.
Und das ist lÀngst nicht alles.
Ăffnen Sie den interaktiven nmcli-Editor und sehen Sie sich an, wie viele Einstellungen es gibt und wie viele Eigenschaften jede Einstellung hat. Der interaktive Editor ist ein groĂartiges Werkzeug, aber wenn Sie nmcli in Einzeilern oder Skripten verwenden möchten, benötigen Sie die regulĂ€re Version fĂŒr die Befehlszeile.
Jetzt, da Sie die Grundlagen haben, schauen Sie sich die nmcli an, um zu erfahren, wie es Ihnen weiterhelfen kann.
Als Werbung
Epische Server sind oder Linux mit leistungsstarken Prozessoren der AMD EPYC-Familie und sehr schnellen NVMe-Disks von Intel. Beeilen Sie sich, Ihre Bestellung aufzugeben!
Quelle: habr.com
