Verwalten von Netzwerkverbindungen in Linux mit dem Konsolenwerkzeug nmcli

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

Verwalten von Netzwerkverbindungen in Linux mit dem Konsolenwerkzeug nmcli

Das Tool nmcli 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 ifconfigverwenden. 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  enabled

Oft 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  enp0s9

Dieser 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  enp0s9

Es 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 manual

Vergessen 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/ActiveC

Wenn Sie im Gegenteil DHCP einrichten möchten, verwenden Sie statt manual auto:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Arbeit 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=255

Es 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-enp0s8

Er 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 Handbuchseite nmcli an, um zu erfahren, wie es Ihnen weiterhelfen kann.

Als Werbung

Epische Server sind virtuelle Server unter Windows oder Linux mit leistungsstarken Prozessoren der AMD EPYC-Familie und sehr schnellen NVMe-Disks von Intel. Beeilen Sie sich, Ihre Bestellung aufzugeben!

Verwalten von Netzwerkverbindungen in Linux mit dem Konsolenwerkzeug nmcli

Quelle: habr.com

60GB SSD 8Gb DDR4