Verwalten Sie Netzwerkverbindungen in Linux mit dem Konsolenwerkzeug nmcli

Nutzen Sie die volle Leistungsfähigkeit des Netzwerkverwaltungswerkzeugs NetworkManager in der Linux-Eingabeaufforderung mit nmcli.

Verwalten Sie Netzwerkverbindungen in Linux mit dem Konsolenwerkzeug nmcli

Dienstprogramm nmcli greift direkt auf die API zu, um Funktionen des NetworkManager zu erreichen.

Es wurde 2010 eingeführt und ist für viele zu einer alternativen Methode zur Konfiguration von Netzwerkinterfaces und -verbindungen geworden. Während einige weiterhin ifconfigverwenden. Da nmcli ein Befehlszeilenwerkzeug (CLI) ist, das für die Verwendung in Terminalfenstern und Skripten gedacht ist, eignet es sich perfekt für Systemadministratoren, die ohne GUI arbeiten.

Die Syntax der ncmli-Befehle

Im Allgemeinen sieht die Syntax folgendermaßen aus:

$ nmcli  

  • options sind Parameter, die die Feinheiten der Funktionsweise von nmcli bestimmen,
  • section (Sektion) bestimmt, welche Funktionen des Werkzeugs verwendet werden sollen,
  • action (Aktion) ermöglicht es anzugeben, was genau getan werden soll.

Es gibt insgesamt 8 Sektionen, die jeweils mit einer bestimmten Gruppe von Befehlen (Aktionen) verknüpft sind:

  • Hilfe gibt Informationen über die Befehle ncmcli und deren Verwendung aus.
  • Allgemein gibt den Status des NetworkManagers und die globale Konfiguration zurück.
  • Networking beinhaltet Befehle zur Abfrage des Zustands der Netzwerkverbindung und zum Ein- / Ausschalten von Verbindungen.
  • Radio beinhaltet Befehle zur Abfrage des Status der Verbindung zum WiFi-Netzwerk und zum Ein- / Ausschalten von Verbindungen.
  • Monitor beinhaltet Befehle zur Überwachung der Aktivität des NetworkManagers und zur Beobachtung von Änderungen des Status der Netzwerkverbindungen.
  • Verbindung beinhaltet Befehle zur Verwaltung von Netzwerk-Interfaces, um neue Verbindungen hinzuzufügen und bestehende zu entfernen.
  • Gerät wird hauptsächlich verwendet, um Parameter zu ändern, die mit Geräten (z. B. dem Namen des Interfaces) verbunden sind, oder um Geräte über eine bestehende Verbindung zu verbinden.
  • Secret registriert nmcli als ‚geheimen Agenten‘ des NetworkManagers, der geheime Nachrichten abhört. Dieser Abschnitt wird selten verwendet, da nmcli standardmäßig so funktioniert, wenn es sich mit Netzwerken verbindet.

Einfache Beispiele

Stellen Sie sicher, dass der NetworkManager läuft und nmcli mit ihm kommunizieren kann, bevor Sie beginnen:

$ nmcli general
STATUS      KONTINUITÄT  WIFI-HW  WIFI     WWAN-HW  WWAN    
verbunden   voll          aktiviert  aktiviert  aktiviert  aktiviert

Häufig beginnt man mit der Ansicht aller Profile der 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 unter dem Begriff Connection in nmcli eine Entität verstehen, die alle Informationen über die Verbindung enthält. Anders gesagt, es handelt sich um die Netzwerkkonfiguration. Die Connection fasst alle Informationen zusammen, die mit Verbindungen verbunden sind, einschließlich der Informationen auf Schicht 2 und Schicht 3 des OSI-Modells.

Wenn Sie ein Netzwerk in Linux konfigurieren, richten Sie normalerweise Verbindungen ein, die schließlich an Netzwerkgeräte gebunden sind, die wiederum Netzwerk-Schnittstellen sind, die auf dem Computer installiert sind. Wenn ein Gerät eine Verbindung nutzt, gilt sie als aktiv oder hochgefahren. Wird die Verbindung nicht verwendet, ist sie inaktiv oder zurückgesetzt.

Hinzufügen von Netzwerkverbindungen

Das Tool ncmli ermöglicht es, Verbindungen schnell hinzuzufügen und sofort zu konfigurieren. Um beispielsweise die Wired connection 2 (mit enp0s8) hinzuzufügen, müssen Sie den folgenden Befehl als Superuser ausführen:

$ sudo nmcli connection add type ethernet ifname enp0s8
Verbindung '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 die Netzwerk-Schnittstelle an, die wir verwenden möchten.

So sieht es nach Ausführung des Befehls aus:

$ 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. Sie erhielt eine UUID, der Verbindungstyp ist Ethernet. Aktivieren wir sie mit dem Befehl up:

$ nmcli connection up ethernet-enp0s8
Verbindung erfolgreich aktiviert (D-Bus aktiver Pfad: /org/freedesktop/NetworkManager/ActiveConnection/4)

Überprüfen wir 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

Eine neue Verbindung ethernet-enp0s8 wurde hinzugefügt, sie ist aktiv und nutzt die Netzwerkoberfläche enp0s8.

Verbindungseinstellungen

Das Tool nmcli ermöglicht es, bestehende Verbindungen einfach zu ändern. Beispielsweise müssen Sie die Verbindung von dynamischer (DHCP) auf statische IP-Adresse umstellen.

Angenommen, wir möchten die IP-Adresse auf 192.168.4.26 setzen. Dafür verwenden wir zwei Befehle. Der erste setzt die IP-Adresse direkt, der zweite ändert die Methode zur IP-Adresszuweisung auf 'manuell':

$ 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 die klassenlose Inter-Domain-Routing (CIDR).

Um die Änderungen wirksam zu machen, 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 hingegen DHCP einrichten möchten, verwenden Sie anstelle von 'manual' 'auto':

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Arbeiten mit Geräten

Dazu verwenden wir den Abschnitt Device.

Überprüfung des Status von Geräten

$ 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  --  

Anfrage von Geräteinformationen

Dazu verwenden wir die Aktion show aus dem Abschnitt Device (das Gerät muss unbedingt benannt werden). Das Tool zeigt ziemlich viele Informationen an, oft auf mehreren Seiten.
Sehen wir uns das Interface enp0s8 an, das unsere neue Verbindung nutzt. Lassen Sie uns sicherstellen, 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 (verbunden)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               an
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 viele Informationen. Lassen Sie uns das Wichtigste hervorheben:

  • Name des Netzwerk-Interfaces: enp0s8.
  • Verbindungstyp: verkabelte Ethernet-Verbindung.
  • Wir sehen die MAC-Adresse des Geräts.
  • Die Maximum Transmission Unit (MTU) ist angegeben — die maximale Größe des nützlichen Datenblocks eines Pakets, das ohne Fragmentierung durch das Protokoll übertragen werden kann.
  • Gerät Derzeit verbunden.
  • Name der Verbindung, die das Gerät verwendet: ethernet-enp0s8.
  • Das Gerät nutzt die IP-Adresse, die wir zuvor festgelegt haben: 192.168.4.26/24.

Weitere Informationen beziehen sich auf die Standard-Routing- und Gateway-Parameter der Verbindung. Diese hängen vom jeweiligen Netzwerk ab.

Interaktiver nmcli-Editor

Der nmcli verfügt auch über einen einfachen interaktiven Editor, in dem die Arbeit für manche Benutzer angenehmer sein kann. Um ihn zu starten, verwenden Sie beispielsweise für die Verbindung ethernet-enp0s8 die Aktion edit:

$ nmcli connection edit ethernet-enp0s8

Er hat auch eine kleine Hilfe, die jedoch in der Größe der Konsolenversion nachsteht:

===| nmcli interaktiver Verbindungseditor |===
Bearbeiten der bestehenden '802-3-ethernet'-Verbindung: 'ethernet-enp0s8'
Geben Sie 'help' oder '?' für verfügbare Befehle ein.
Geben Sie 'print' ein, um alle Verbindungs Eigenschaften anzuzeigen.
Geben Sie 'describe [<setting>.<prop>]' für eine detaillierte Beschreibungen der Eigenschaften ein.
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 Enter drücken, zeigt nmcli alle Eigenschaften der Verbindung an:

===============================================================================
                 Verbindungsprofildetails (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:                 ja
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (Standard)
connection.multi-connect:               0 (Standard)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   nein
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. Enter:

nmcli> goto ipv4
Sie können die folgenden Eigenschaften bearbeiten: Methode, DNS, DNS-Suche, 
dns-Optionen, dns-priorität, Adressen, Gateway, Routen, Routenmetrik, 
Routing-Tabellen, 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, nie-standard, darf-fehlschlagen, 
dad-timeout
nmcli ipv4>

Geben Sie dann set method auto ein und drücken Sie Enter. 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 die Eingabetaste. Sie können es speichern, wenn Sie denken, dass es in Zukunft nützlich sein könnte. Aber selbst mit einer gespeicherten statischen IP-Adresse wird DHCP verwendet, wenn die Methode auf 'auto' gesetzt ist.

Verwenden Sie den Befehl 'save', um die Ä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 es sich anders überlegen, verwenden Sie den Befehl 'back'.

Und das ist noch längst nicht alles.

Öffnen Sie den interaktiven nmcli-Editor und sehen Sie sich an, wie viele Einstellungen es gibt und welche Eigenschaften jede Einstellung hat. Der interaktive Editor ist ein hervorragendes Werkzeug, aber wenn Sie nmcli in Einzeilern oder Skripten verwenden möchten, benötigen Sie die normale Version für die Befehlszeile.

Jetzt, wo Sie die Grundlagen kennen, werfen Sie einen Blick auf die Man-Seite von nmcli, um herauszufinden, wie es Ihnen weiterhelfen kann.

Im Auftrag der Werbung

Epische Server — ist Virtuelle Server auf Windows oder Linux mit leistungsstarken AMD EPYC-Prozessoren und extrem schnellen Intel NVMe-Laufwerken. Bestellen Sie jetzt!

Verwalten Sie Netzwerkverbindungen in Linux mit dem Konsolenwerkzeug nmcli

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster