GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwalten Sie Netzwerkverbindungen über die Linux-Befehlszeile mit nmcli

Mit dem nmcli-Befehl können Sie die Leistungsfähigkeit des NetworkManager-Tools direkt über die Linux-Befehlszeile nutzen. Es ist ein integraler Bestandteil des NetworkManager-Pakets, das eine Anwendungsprogrammierschnittstelle (API) verwendet, um auf die Funktionalität von NetworkManager zuzugreifen.

nmcli wurde 2010 veröffentlicht und ersetzt andere Modi zum Konfigurieren von Netzwerkschnittstellen und -verbindungen, wie z. B. ifconfig. Da es sich um ein Befehlszeilenschnittstellen-Tool (CLI) handelt, das für die Verwendung in Terminalfenstern und Skripts entwickelt wurde, ist es ideal für Systemadministratoren, die an Systemen ohne grafische Benutzeroberfläche (GUI) arbeiten.

ncmli-syntax

Der nmcli-Befehl akzeptiert Optionen die das Verhalten von nmcli ändern, Abschnitte die nmcli mitteilen, welche seiner Fähigkeiten Sie verwenden möchten, und Aktionen die ihm sagen, was er tun soll:

$ nmcli <options> <section> <action>

Mehr über Systemadministratoren

  • Sysadmin-Blog aktivieren
  • Das automatisierte Unternehmen:ein Leitfaden zur IT-Verwaltung mit Automatisierung
  • eBook:Ansible-Automatisierung für SysAdmins
  • Geschichten aus der Praxis:Ein Leitfaden für Systemadministratoren zur IT-Automatisierung
  • eBook:Ein Leitfaden zu Kubernetes für SREs und Systemadministratoren
  • Neueste Sysadmin-Artikel

Es gibt acht Abschnitte, die sich jeweils auf einen bestimmten Satz von Netzwerkaktionen beziehen:

  • Hilfe bietet Hilfe zu den Befehlen und der Verwendung von ncmcli.
  • Allgemeines Ruft den Status und die globale Konfiguration von NetworkManager ab.
  • Vernetzung bietet Befehle zum Abfragen des Status einer Netzwerkverbindung und zum Aktivieren oder Deaktivieren von Verbindungen.
  • Radio bietet Befehle zum Abfragen des Status einer WLAN-Netzwerkverbindung und zum Aktivieren oder Deaktivieren von Verbindungen.
  • Überwachen bietet Befehle zum Überwachen der NetworkManager-Aktivität und zum Beobachten von Statusänderungen von Netzwerkverbindungen.
  • Verbindung bietet Befehle zum Hoch- und Herunterfahren von Netzwerkschnittstellen, zum Hinzufügen neuer Verbindungen und zum Löschen bestehender Verbindungen.
  • Gerät wird hauptsächlich verwendet, um mit einem Gerät verbundene Parameter zu ändern (z. B. den Schnittstellennamen) oder um ein Gerät über eine bestehende Verbindung zu verbinden.
  • Geheimnis registriert nmcli als NetworkManager Secret Agent, der auf geheime Nachrichten wartet. Dies ist sehr selten erforderlich, da nmcli dies automatisch beim Verbinden mit Netzwerken macht.

Einfache Beispiele

Stellen Sie als erste Überprüfung sicher, dass NetworkManager ausgeführt wird und nmcli damit kommunizieren kann:

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

Aufklärung ist oft der erste Teil der Verwaltung eines Systems. So listen Sie alle In-Memory- und On-Disk-Netzwerkverbindungsprofile auf:

$ 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 den show Aktion von der connection Abschnitt.

Auf dem für dieses Beispiel verwendeten Testcomputer wird Ubuntu 20.04 ausgeführt. Es hat drei Netzwerkadapter installiert:enp0s3 , enp0s8 und enp0s9 .

Verbindungsverwaltung

Es ist wichtig, die Nomenklatur von nmcli zu verstehen. Eine Netzwerkverbindung ist etwas, das alle Informationen über eine Verbindung enthält. Sie können es sich als Netzwerk-Konfiguration vorstellen . Eine Verbindung kapselt alle Informationen, die sich auf eine Verbindung beziehen, einschließlich der Sicherungsschicht und der IP-Adressinformationen. Das sind Schicht 2 und Schicht 3 im OSI-Netzwerkmodell.

Wenn Sie ein Netzwerk unter Linux konfigurieren, konfigurieren Sie normalerweise Verbindungen, die schließlich an Netzwerkgeräte gebunden werden, bei denen es sich um die in einem Computer installierten Netzwerkschnittstellen handelt. Wenn eine Verbindung von einem Gerät verwendet wird, wird die Verbindung als aktiv bezeichnet oder oben . Das Gegenteil von aktiv ist inaktiv oder unten .

Netzwerkverbindungen hinzufügen

Mit dem Befehl ncmli können Sie schnell Netzwerkverbindungen erstellen und gleichzeitig Elemente ihrer Konfiguration angeben. Um eine neue Verbindung mit Kabelverbindung 2 hinzuzufügen, enp0s8 , müssen Sie sudo verwenden :

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

Der type Option fordert eine Ethernet-Verbindung an, und der ifname Die Option (Schnittstellenname) gibt das Netzwerkschnittstellengerät an, das die Verbindung verwenden soll.

Überprüfen Sie, was passiert ist:

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

Ihre neue Verbindung, ethernet-enp0s8 , entstand. Seine universell eindeutige Kennung (UUID) wurde zugewiesen, und der Verbindungstyp ist Ethernet. Aktivieren Sie es mit up Befehl gefolgt vom Verbindungsnamen (oder der UUID):

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

Überprüfen Sie noch einmal Ihre 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

Ihre neue Verbindung, ethernet-enp0s8 , ist jetzt aktiv und an enp0s8 gebunden Netzwerkschnittstellengerät.

Verbindungen anpassen

Der Befehl ncmli erleichtert das Anpassen der Parameter bestehender Verbindungen. Vielleicht möchten Sie eine Netzwerkschnittstelle von DHCP (Dynamic Host Configuration Protocol) auf eine statische IP-Adresse umstellen.

Angenommen, Sie benötigen eine feste IP-Adresse von 192.168.4.26 für Ihren neuen Anschluss. Um dies zu erreichen, müssen Sie zwei Befehle erteilen. Eine zum Festlegen der IP-Adresse und eine zum Festlegen der Verbindungsmethode zum Abrufen einer IP-Adresse auf manual :

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

Denken Sie daran, die Subnetzmaske anzugeben. In diesem Testnetzwerk ist es 255.255.255.0 , oder /24 im klassenlosen Inter-Domain-Routing (CIDR).

Damit Ihre Änderungen wirksam werden, müssen Sie bouncen Unterbrechen Sie die Verbindung, indem Sie sie stoppen und wieder aufbauen. Der erste Befehl baut die Verbindung ab und der zweite stellt sie wieder her:

$ 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/ActiveConnection/6)

Wenn Sie die Verbindung so einstellen möchten, dass sie DHCP verwendet, verwenden Sie auto statt manual :

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Geräteverwaltung

Die Befehle im device Abschnitt des nmcli-Befehls ermöglicht es Ihnen, die auf Ihrem Computer installierten Netzwerkschnittstellen zu verwalten.

Überprüfen des Gerätestatus

So überprüfen Sie schnell den Status aller Netzwerkschnittstellen:

$ 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ätedetails anzeigen

Um die Details einer Netzwerkschnittstelle zu untersuchen, verwenden Sie show Aktion vom device Sektion. Wenn Sie keinen Gerätenamen angeben, werden die Details aller Geräte abgerufen und angezeigt. Sie können nach oben und unten scrollen und blättern, um sie zu überprüfen.

Sehen Sie sich enp0s8 an , das Gerät, das Ihre neue Verbindung verwendet. Stellen Sie sicher, dass die verwendete IP-Adresse die Adresse ist, die Sie zuvor angefordert 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

Die Antwort ist ziemlich ausführlich. Unter anderem zeigt es:

  • Der Name der Netzwerkschnittstelle , was in diesem Fall enp0s8 ist , die ihm von udev zugewiesen wird.
  • Der Netzwerkverbindungstyp , bei der es sich in diesem Fall um eine physische Ethernet-Verbindung handelt.
  • Die MAC-Adresse (Media Access Control) des Geräts , die das Gerät im Netzwerk identifiziert.
  • Die maximale Übertragungseinheit, die die Größe der größten Protokolldateneinheit ist, die in einer einzelnen Transaktion übertragen werden kann. Alles, was größer ist, wird in mehrere Pakete aufgeteilt.
  • Dieses Gerät ist aktuell verbunden .
  • Der Name der Verbindung Dieses Gerät zu verwenden ist ethernet-enp0s8 .
  • Die IP-Adresse der Verbindung mit diesem Gerät. Wie angefordert, ist es auf 192.168.4.26/24 eingestellt .

Die anderen Informationen beziehen sich auf die standardmäßigen Routing- und Gateway-Einstellungen, die auf diese Verbindung angewendet wurden, je nach dem Netzwerk, mit dem sie verbunden ist.

der interaktive Editor von nmcli

Obwohl es sich um ein Befehlszeilentool handelt, enthält nmcli einen elementaren interaktiven Editor. Die edit Aktion öffnet den interaktiven Editor auf der von Ihnen angegebenen Verbindung:

$ nmcli connection edit ethernet-enp0s8

Es zeigt eine kleine Menge Hilfetext an, dann die nmcli-Eingabeaufforderung:

===| 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 print eingeben und drücken Sie Enter , listet nmcli alle Eigenschaften auf, die der Verbindung zugeordnet sind. Es gibt viele Eigenschaften. Sie können in der Liste nach oben und unten blättern:

===============================================================================
                 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:                 --

Ändern Sie Ihre Verbindung zurück, um DHCP zu verwenden. Geben Sie goto ipv4 ein und drücken Sie Enter :

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>

Die Eigenschaft, die Sie ändern möchten, ist method . Geben Sie set method auto ein und drücken Sie Enter :

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

Wenn Sie möchten, dass die Verbindung die statische IP-Adresse löscht, drücken Sie Eingabe . Um es beizubehalten, geben Sie no ein und drücken Sie Enter . Sie können es behalten, wenn Sie glauben, dass Sie es in Zukunft wieder verwenden werden. Auch bei gespeicherter statischer IP-Adresse, wenn method auf auto eingestellt ist , wird DHCP verwendet.

Geben Sie save ein So speichern Sie Ihre Änderungen:

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

Geben Sie quit ein um den interaktiven nmcli-editor zu verlassen. Wenn Sie nicht beenden möchten, geben Sie back ein um zur Hauptebene zurückzukehren und den Editor weiter zu verwenden.

Nmcli hat noch viel mehr zu bieten

Durchsuchen Sie den interaktiven Editor und sehen Sie, wie viele Einstellungen es gibt und wie viele Eigenschaften jede Einstellung hat. Der interaktive Editor ist ein hübsches Werkzeug, aber für raffinierte Einzeiler oder um nmcli in Skripten zu verwenden, benötigen Sie die reguläre Befehlszeilenversion.

Nachdem Sie nun die Grundlagen in der Hand haben, sehen Sie sich die man-Seite von nmcli an, um zu sehen, was sie sonst noch zu bieten hat.


Linux
  1. So installieren Sie Software über die Linux-Befehlszeile

  2. Arbeiten mit Pipes auf der Linux-Befehlszeile

  3. E/A-Berichte über die Linux-Befehlszeile

  4. Pass – Verwalten Sie Ihre Passwörter über die Linux-Befehlszeile

  5. Migrieren eines Linux-Servers über die Befehlszeile

Verwalten Sie Ihren Kalender über das Linux-Terminal mit dem Befehl konsolekalendar

Programmieren Sie Hardware über die Linux-Befehlszeile

Lösen Sie ein Rätsel auf der Linux-Befehlszeile mit Nudoku

Tipps zum Auflisten von Dateien mit ls in der Linux-Befehlszeile

Meistern Sie die Linux-Befehlszeile

So überprüfen Sie die Linux-Netzwerkstatistik über die Befehlszeile