Verwalten von Netzwerkverbindungen unter Linux mit dem Dienstprogramm nmcli console

Nutzen Sie das NetworkManager-Netzwerkverwaltungstool über die Linux-Befehlszeile mit dem Dienstprogramm nmcli.







Das Dienstprogramm nmcli ruft die API direkt auf, um auf die NetworkManager-Funktionen zuzugreifen.



Es erschien im Jahr 2010 und ist für viele eine alternative Möglichkeit, Netzwerkschnittstellen und -verbindungen zu konfigurieren. Obwohl noch jemand ifconfig verwendet . Da nmcli ein CLI-Tool (Command Line Interface) ist, das für die Verwendung in Terminalfenstern und -skripten entwickelt wurde, ist es ideal für Sysadmins ohne GUI.



Ncmli-Befehlssyntax



Im Allgemeinen sieht die Syntax folgendermaßen aus:



$ nmcli <options> <section> <action>


  • Optionen sind Parameter, die die Feinheiten von nmcli definieren.
  • Abschnitt - Definiert, welche Funktionen des Dienstprogramms verwendet werden sollen.
  • Aktion - Mit dieser Option können Sie angeben, was tatsächlich getan werden muss.


Insgesamt gibt es 8 Abschnitte, von denen jeder einer Reihe von Befehlen (Aktionen) zugeordnet ist:



  • Die Hilfe enthält Informationen zu ncmcli-Befehlen und deren Verwendung.
  • Allgemein gibt den NetworkManager-Status und die globale Konfiguration zurück.
  • Das Netzwerk enthält Befehle zum Abfragen des Status einer Netzwerkverbindung und zum Aktivieren / Deaktivieren von Verbindungen.
  • Radio enthält Befehle zum Abfragen des WLAN-Verbindungsstatus und zum Aktivieren / Deaktivieren von Verbindungen.
  • Monitor enthält Befehle zum Überwachen der NetworkManager-Aktivität und zum Überwachen von Änderungen im Status von Netzwerkverbindungen.
  • Verbindung enthält Befehle zum Verwalten von Netzwerkschnittstellen, zum Hinzufügen neuer Verbindungen und zum Entfernen vorhandener Verbindungen.
  • Das Gerät wird hauptsächlich zum Ändern von Parametern in Bezug auf Geräte (z. B. Schnittstellenname) oder zum Verbinden von Geräten über eine vorhandene Verbindung verwendet.
  • Secret registriert nmcli als "Secret Agent" NetworkManager, der auf geheime Nachrichten wartet. Dieser Abschnitt wird selten verwendet, da nmcli standardmäßig so funktioniert, wenn eine Verbindung zu Netzwerken hergestellt wird.


Einfache Beispiele



Stellen Sie vor dem Start sicher, dass NetworkManager ausgeführt wird und nmcli mit ihm kommunizieren kann:



$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled


Oft beginnt die Arbeit mit der Betrachtung aller Netzwerkverbindungsprofile:



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



Auf dem Testcomputer wird Ubuntu 20.04 ausgeführt. In diesem Fall haben wir drei Kabelverbindungen gefunden: enp0s3, enp0s8 und enp0s9.



Verbindungsmanagement



Es ist wichtig zu verstehen, dass wir in nmcli unter dem Begriff Verbindung eine Entität verstehen, die alle Informationen über die Verbindung enthält. Mit anderen Worten, es ist die Netzwerkkonfiguration. Die Verbindung kapselt alle verbindungsbezogenen Informationen, einschließlich der Informationen zur Verbindungsschicht und zur IP-Adressierung. Dies sind Schicht 2 und Schicht 3 im OSI-Netzwerkmodell.



Wenn Sie ein Netzwerk unter Linux einrichten, richten Sie normalerweise Verbindungen ein, die letztendlich an Netzwerkgeräte gebunden sind, bei denen es sich wiederum um die auf dem Computer installierten Netzwerkschnittstellen handelt. Wenn ein Gerät eine Verbindung verwendet, wird es als aktiv oder aktiv betrachtet. Wenn die Verbindung nicht verwendet wird, ist sie inaktiv oder wird unterbrochen.



Netzwerkverbindungen hinzufügen



Mit dem Dienstprogramm ncmli können Sie schnell Verbindungen hinzufügen und sofort konfigurieren. Um beispielsweise die Kabelverbindung 2 (mit enp0s8) hinzuzufügen, müssen Sie den folgenden Befehl als Superuser ausführen:



$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.


In der Option type geben wir an, dass dies eine Ethernet-Verbindung ist, und in der Option ifname (Schnittstellenname) geben wir die Netzwerkschnittstelle an, die wir verwenden möchten.



Folgendes passiert nach dem Ausführen des Befehls:



$ 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. Es wurde eine UUID zugewiesen, der Verbindungstyp war Ethernet. Lassen Sie es uns mit dem Befehl up aufrufen:



$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)


Überprüfen Sie die Liste der aktiven Verbindungen erneut:



$ 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 Verbindung ethernet-enp0s8 hinzugefügt. Sie ist aktiv und verwendet die Netzwerkschnittstelle enp0s8.



Verbindungen einrichten



Das Dienstprogramm ncmli erleichtert das Ändern der Parameter vorhandener Verbindungen. Beispielsweise müssen Sie Dynamic (DHCP) in statische IP-Adresse ändern.



Angenommen, wir müssen die IP-Adresse auf 192.168.4.26 festlegen. Dafür verwenden wir zwei Befehle. Der erste stellt die IP-Adresse direkt ein und der zweite schaltet die Methode zum Einstellen der IP-Adresse auf manuell um:



$ 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 einzustellen. Für unsere Testverbindung ist dies 255.255.255.0 oder s / 24 für Classless Routing (CIDR).



Damit die Änderungen wirksam werden, müssen Sie die Verbindung deaktivieren und anschließend erneut aktivieren:



$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC


Wenn Sie stattdessen DHCP installieren müssen, verwenden Sie auto anstelle von manual:



$ nmcli connection modify ethernet-enp0s8 ipv4.method auto


Arbeiten mit Geräten



Hierfür verwenden wir den Bereich Gerät.



Gerätestatus überprüfen



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


Geräteinformationen anfordern



Verwenden Sie dazu die Show-Aktion im Abschnitt Gerät (Sie müssen den Gerätenamen angeben). Das Dienstprogramm zeigt viele Informationen an, häufig auf mehreren Seiten.

Werfen wir einen Blick auf die Schnittstelle enp0s8, die unsere neue Verbindung verwendet. Stellen wir sicher, dass genau dieselbe IP-Adresse verwendet wird, 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 viele Informationen. Lassen Sie uns die Hauptsache hervorheben:



  • Name der Netzwerkschnittstelle: enp0s8.
  • Verbindungstyp: Kabelgebundene Ethernet-Verbindung.
  • Wir sehen die MAC-Adresse des Geräts.
  • Angegebene maximale Übertragungseinheit (MTU) - Die maximale Größe der nützlichen Dateneinheit eines Pakets, die vom Protokoll ohne Fragmentierung übertragen werden kann.
  • Das Gerät ist derzeit verbunden .
  • Der Name der Verbindung, die das Gerät verwendet, lautet ethernet-enp0s8.
  • Das Gerät verwendet dieselbe IP-Adresse , die wir zuvor festgelegt haben: 192.168.4.26/24.


Weitere Informationen beziehen sich auf die Standard-Routing- und Gateway-Einstellungen für die Verbindung. Sie sind netzwerkspezifisch.



Interaktiver nmcli-Editor



Nmcli hat auch einen einfachen interaktiven Editor, in dem jemand bequemer arbeiten kann. Verwenden Sie die Bearbeitungsaktion , um es beispielsweise für eine Ethernet-enp0s8-Verbindung auszuführen :



$ nmcli connection edit ethernet-enp0s8


Er hat auch eine kleine Hilfe, die jedoch kleiner ist als die Konsolenversion:



===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>


Wenn Sie den Druckbefehl eingeben und die Eingabetaste drücken, zeigt nmcli alle Verbindungseigenschaften an:



===============================================================================
                 Connection profile 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 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --


Um beispielsweise die DHCP-Eigenschaft für eine Verbindung festzulegen, geben Sie goto ipv4 ein und drücken Sie die Eingabetaste :



nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, 
dns-options, dns-priority, addresses, gateway, routes, route-metric, 
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, 
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>


Schreiben Sie dann set method auto und drücken Sie die Eingabetaste :



nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:


Wenn Sie die statische IP löschen möchten, drücken Sie die Eingabetaste . Andernfalls geben Sie no ein und drücken Sie die Eingabetaste. Sie können es behalten, wenn Sie glauben, dass Sie es in Zukunft brauchen werden. Aber auch wenn eine statische IP-Adresse gespeichert ist, wird DHCP verwendet, wenn die Methode auf auto eingestellt ist.



Verwenden Sie den Befehl save, um Ihre Änderungen zu speichern:



nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>


Geben Sie quit ein, um den nmcli Interactive Editor zu beenden. Wenn Sie Ihre Meinung zum Verlassen ändern, verwenden Sie den Befehl back.



Und das ist nicht alles



Öffnen Sie den nmcli Interactive Editor und sehen Sie, wie viele Einstellungen es gibt und wie viele Eigenschaften jede Einstellung hat. Der interaktive Editor ist ein großartiges Tool. Wenn Sie jedoch nmcli in Einzeilern oder Skripten verwenden möchten, benötigen Sie die reguläre Befehlszeilenversion. Nachdem



Sie die Grundlagen kennen, lesen Sie auf der nmcli- Manpage nach, wie es Ihnen sonst noch helfen kann.






Werbung



Epic Server sind virtuelle Windows- oder Linux- Server mit leistungsstarken AMD EPYC-Prozessoren und sehr schnellen Intel NVMe-Laufwerken. Beeilen Sie sich zu bestellen!






All Articles