Udnyt alle funktioner i værktøjet til netværksforbindelser NetworkManager fra kommandolinjen i Linux med værktøjet nmcli.

Utility henvender sig direkte til API'et for at få adgang til funktioner fra NetworkManager.
Det blev introduceret i 2010 og er for mange blevet et alternativ til konfiguration af netværksinterfacer og forbindelser. Selvom nogle stadig bruger . Da nmcli er et kommandolinjeværktøj (CLI), der er beregnet til brug i terminalvinduer og scripts, er det ideelt til systemadministratorer, der arbejder uden GUI.
Syntaksen for ncmli-kommandoer
Generelt ser syntaksen sådan ud:
$ nmcli - options — er parametre, der definerer detaljeret, hvordan nmcli fungerer,
- section (sektion) — definerer, hvilke funktioner værktøjet skal benytte,
- action (handling) — tillader at angive, hvad der konkret skal gøres.
Der findes i alt 8 sektioner, hver relateret til et bestemt sæt af kommandoer (handlinger):
- Help giver hjælp om ncmcli-kommandoer og deres anvendelse.
- Generelt returnerer status for NetworkManager og den globale konfiguration.
- Netværk aktiverer kommandoer til at anmode om status for netværksforbindelser og til at aktivere/deaktivere forbindelser.
- Radio aktiverer kommandoer til at anmode om status for WiFi-forbindelser og til at aktivere/deaktivere forbindelser.
- Monitor aktiverer kommandoer til at overvåge aktiviteten i NetworkManager og til at følge med i ændringer i netværksforbindelsernes status.
- Connection aktiverer kommandoer til at administrere netværksinterfacer, tilføje nye forbindelser og slette eksisterende.
- Device bruges primært til at ændre indstillinger relateret til enheder (f.eks. interface-navn) eller til at forbinde enheder ved hjælp af en eksisterende forbindelse.
- Secret registrer nmcli som en 'hemmelig agent' for NetworkManager, der lytter til hemmelige meddelelser. Denne sektion bruges sjældent, da nmcli som standard fungerer sådan ved tilslutning til netværk.
Enkle eksempler
Før du begynder, skal du sikre dig, at NetworkManager er aktivt, og at nmcli kan kommunikere med det:
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabledOfte starter man med at se på alle profiler for netværksforbindelser:
$ 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 enp0s9Denne kommando bruger handlingen show til sektionen Connection.
På testmaskinen kører Ubuntu 20.04. I dette tilfælde fandt vi tre kablede forbindelser: enp0s3, enp0s8, og enp0s9.
Håndtering af forbindelser
Det er vigtigt at forstå, at i nmcli henviser termen Connection til en enhed, der indeholder al information om forbindelsen. Med andre ord er det konfigurationen af netværket. Connection inkorporerer al information relateret til forbindelser, herunder data-link niveau og information om IP-adressering. Dette er niveau 2 og niveau 3 i OSI netværksmodellen.
Når du konfigurerer netværket i Linux, konfigurerer du typisk forbindelser, som i sidste ende vil være knyttet til netværksenheder, der igen er netværksinterfaces, der er installeret på computeren. Når en enhed bruger en forbindelse, betragtes den som aktiv eller oppe. Hvis forbindelsen ikke bruges, er den inactive eller Brudt.
Tilføjelse af netværksforbindelser
Værktøjet nmcli giver dig mulighed for hurtigt at tilføje og straks konfigurere forbindelser. For eksempel, for at tilføje Wired connection 2 (med enp0s8), skal du som superbruger køre følgende kommando:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.I optionen type angiver vi, at det vil være en Ethernet-forbindelse, og i optionen ifname (interface name) angiver vi netværksinterfacet, som vi ønsker at bruge.
Her er, hvad der vil ske efter at have kørt kommandoen:
$ 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 -- En ny forbindelse, ethernet-enp0s8, er oprettet. Den har fået tildelt en UUID, og tilkoblingstypen er Ethernet. Vi aktiverer den ved hjælp af kommandoen up:
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)Lad os tjekke listen over aktive forbindelser igen:
$ 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 enp0s9Der er tilføjet en ny ethernet-forbindelse enp0s8, som er aktiv og bruger netværksgrænsefladen enp0s8.
Indstilling af forbindelser
Ncmli-værktøjet gør det nemt at ændre indstillingerne for eksisterende forbindelser. For eksempel, hvis du vil ændre fra dynamisk (DHCP) til statisk IP-adresse.
Lad os sige, at vi skal indstille IP-adressen til 192.168.4.26. Vi bruger to kommandoer. Den første sætter IP-adressen direkte, mens den anden ændrer metoden til at sætte IP-adressen til "manuel":
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manualGlem ikke også at angive subnetmasken. For vores testforbindelse er det 255.255.255.0, eller /24 for CIDR.
For at ændringerne træder i kraft, skal forbindelsen deaktiveres og derefter aktiveres igen:
$ nmcli connection down ethernet-enp0s8
Forbindelse 'ethernet-enp0s8' blev deaktiveret med succes (D-Bus aktiv sti: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Forbindelse blev aktiveret med succes (D-Bus aktiv sti: /org/freedesktop/NetworkManager/ActiveCHvis du derimod har brug for at indstille DHCP, skal du bruge auto i stedet for manual:
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoArbejder med enheder
Til dette bruger vi sektionen Device.
Kontrol af enheders status
$ 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 -- Anmodning om enhedsoplysninger
Til dette bruger vi show-handlingen fra sektionen Device (du skal angive enhedsnavnet). Værktøjet viser en hel del information, ofte på flere sider.
Lad os tage et kig på grænsefladen enp0s8, som bruger vores nye forbindelse. Vi kontrollerer, at den bruger præcis den IP-adresse, vi har indstillet tidligere:
$ 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=255Der er en hel del information. Lad os fremhæve det vigtigste:
- Navnet på netværksgrænsefladen: enp0s8.
- Forbindelsestype: kablet Ethernet-forbindelse.
- Vi ser MAC-adressen på enheden.
- Der er angivet Maximum transmission unit (MTU) — den maksimale størrelse af datablokken i én pakke, der kan sendes af protokollen uden fragmentering.
- Enhed er i øjeblikket tilsluttet.
- Navn på forbindelsen, som enheden bruger: ethernet-enp0s8.
- Enheden bruger den IP-adresse, som vi tidligere har angivet: 192.168.4.26/24.
Andre oplysninger vedrører standardparametre for routing og gateway for forbindelsen. De afhænger af det specifikke netværk.
Interaktiv editor for nmcli
nmcli har også en simpel interaktiv editor, hvor det kan være mere komfortabelt for nogen at arbejde. For at starte den, for eksempel til forbindelsen ethernet-enp0s8, brug handlingen edit:
$ nmcli connection edit ethernet-enp0s8Den har også en kort hjælp, som dog er mindre end konsolversionen:
===| nmcli interaktiv forbindelse editor |===
Redigering af eksisterende '802-3-ethernet' forbindelse: 'ethernet-enp0s8'
Skriv 'help' eller '?' for tilgængelige kommandoer.
Skriv 'print' for at vise alle forbindelsens egenskaber.
Skriv 'describe [<indstilling>.<egenskab>]' for en detaljeret egenskabsbeskrivelse.
Du kan redigere følgende indstillinger: forbindelse, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>Hvis du indtaster kommandoen print og trykker på Enter, vil nmcli vise alle forbindelsens egenskaber:
===============================================================================
Forbindelsesprofil oplysninger (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: nej
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (standard)
connection.secondaries: --For eksempel, for at angive en egenskab for forbindelsen til DHCP, skriv goto ipv4 og tryk på Enter:
nmcli> goto ipv4
Du kan redigere følgende egenskaber: metode, dns, dns-søgning,
dns-muligheder, dns-prioritet, adresser, gateway, ruter, rute-metrik,
rute-tabel, routing-regler, ignorere-auto-ruter, ignorere-auto-dns,
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname,
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, aldrig-standard, kan-fejle,
dad-timeout
nmcli ipv4>Skriv derefter set method auto og tryk på Enter:
nmcli ipv4> set method auto
Vil du også rydde 'ipv4.adresser'? [ja]:Hvis du vil rydde den statiske IP-adresse, skal du trykke Enter. Ellers, indtast no og tryk på Enter. Du kan gemme det, hvis du tror, det vil være nyttigt for dig i fremtiden. Men selv med en gemt statisk IP-adresse vil DHCP blive brugt, hvis metoden er indstillet til auto.
Brug kommandoen save for at gemme ændringerne:
nmcli ipv4> save
Forbindelse 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) blev opdateret med succes.
nmcli ipv4>Indtast quit for at forlade den interaktive nmcli-editor. Hvis du ombestemmer dig med at afslutte, skal du bruge kommandoen back.
Og det er langt fra alt
Åbn den interaktive nmcli-editor og se, hvor mange konfigurationer der findes, og hvor mange egenskaber hver konfiguration har. Den interaktive editor er et fremragende værktøj, men hvis du ønsker at bruge nmcli i en-linje-kommandoer eller scripts, skal du bruge den almindelige version til kommandolinjen.
Nu hvor du har det grundlæggende, gå videre til nmcli, for at finde ud af, hvad den ellers kan hjælpe dig med.
Annoncering
Episk servere — det er eller Linux med kraftfulde AMD EPYC-processorer og meget hurtige NVMe Intel-diske. Skynd dig at bestille!
Kilde: habr.com
