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.