Gestió de connexions de xarxa a Linux mitjançant la utilitat de consola nmcli

Aprofiteu al màxim l'eina de gestió de xarxa NetworkManager a la línia d'ordres de Linux mitjançant la utilitat nmcli.

Gestió de connexions de xarxa a Linux mitjançant la utilitat de consola nmcli

Utilitat nmcli crida directament a l'API per accedir a les funcions de NetworkManager.

Va aparèixer l'any 2010 i per a molts s'ha convertit en una forma alternativa de configurar interfícies i connexions de xarxa. Encara que algunes persones encara fan servir ifconfig. Com que nmcli és una eina d'interfície de línia d'ordres (CLI) dissenyada per utilitzar-se en finestres de terminal i scripts, és ideal per als administradors de sistemes que treballin sense GUI.

sintaxi de l'ordre ncmli

En general, la sintaxi és així:

$ nmcli <options> <section> <action>

  • les opcions són paràmetres que determinen les subtileses de l'operació nmcli,
  • secció (secció): determina quines funcions de la utilitat s'utilitzaran,
  • acció: us permet especificar què cal fer realment.

Hi ha 8 seccions en total, cadascuna de les quals està associada a un determinat conjunt d'ordres (accions):

  • Ajuda proporciona ajuda sobre les ordres ncmcli i el seu ús.
  • General retorna l'estat del NetworkManager i la configuració global.
  • xarxes inclou ordres per consultar l'estat de connexió de xarxa i activar/desactivar connexions.
  • Ràdio inclou ordres per consultar l'estat de la connexió de la xarxa WiFi i activar/desactivar connexions.
  • Controlar inclou ordres per supervisar l'activitat de NetworkManager i observar els canvis en l'estat de les connexions de xarxa.
  • Connexió inclou ordres per gestionar les interfícies de xarxa, afegir noves connexions i eliminar les existents.
  • Aparell s'utilitza principalment per canviar paràmetres relacionats amb el dispositiu (com ara el nom de la interfície) o per connectar dispositius mitjançant una connexió existent.
  • Secret registra nmcli com a "agent secret" de NetworkManager que escolta missatges secrets. Aquesta secció s'utilitza poques vegades, perquè nmcli funciona d'aquesta manera per defecte quan es connecta a les xarxes.

Exemples senzills

Abans de començar, assegureu-vos que NetworkManager s'està executant i que nmcli es pot comunicar amb ell:

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

El treball sovint comença visualitzant tots els perfils de connexió de xarxa:

$ 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

Aquesta comanda utilitza acció mostra per a la secció Connexió.

La màquina de prova està executant Ubuntu 20.04. En aquest cas, hem trobat tres connexions per cable: enp0s3, enp0s8 i enp0s9.

Gestionar les connexions

És important entendre que en nmcli, amb el terme Connexió ens referim a una entitat que conté tota la informació sobre la connexió. En altres paraules, aquesta és la configuració de la xarxa. La connexió encapsula tota la informació relacionada amb la connexió, inclosa la capa d'enllaç i la informació d'adreça IP. Es tracta de la capa 2 i la capa 3 del model de xarxa OSI.

Quan configureu una xarxa a Linux, normalment esteu configurant connexions que acabaran lligades a dispositius de xarxa, que al seu torn són interfícies de xarxa instal·lades a l'ordinador. Quan un dispositiu utilitza una connexió, es considera activa o elevada. Si no s'utilitza una connexió, està inactiva o es restableix.

Afegir connexions de xarxa

La utilitat ncmli us permet afegir i configurar connexions ràpidament. Per exemple, per afegir la connexió per cable 2 (amb enp0s8), heu d'executar l'ordre següent com a superusuari:

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

A l'opció tipus indiquem que serà una connexió Ethernet, i a l'opció ifname (nom de la interfície) indiquem la interfície de xarxa que volem utilitzar.

Això és el que passarà després d'executar l'ordre:

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

S'ha creat una nova connexió, ethernet-enp0s8. Se li va assignar un UUID i el tipus de connexió era Ethernet. Aixequem-lo amb l'ordre up:

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

Tornem a comprovar la llista de connexions actives:

$ 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

S'ha afegit una nova connexió ethernet-enp0s8, està activa i utilitza la interfície de xarxa enp0s8.

Configuració de connexions

La utilitat ncmli us permet canviar fàcilment els paràmetres de les connexions existents. Per exemple, heu de canviar la vostra adreça IP dinàmica (DHCP) per una adreça IP estàtica.

Suposem que hem d'establir l'adreça IP a 192.168.4.26. Per fer-ho fem servir dues ordres. El primer establirà directament l'adreça IP i el segon canviarà el mètode de configuració de l'adreça IP a manual:

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

No oblideu configurar també la màscara de subxarxa. Per a la nostra connexió de prova, aquesta és 255.255.255.0, o amb /24 per a l'encaminament sense classe (CIDR).

Perquè els canvis tinguin efecte, heu de desactivar i reactivar la connexió:

$ 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

Si, per contra, necessiteu instal·lar DHCP, utilitzeu auto en lloc de manual:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Treballar amb dispositius

Per a això utilitzem la secció Dispositiu.

Comprovació de l'estat del dispositiu

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

Sol·licitud d'informació del dispositiu

Per fer-ho, utilitzeu l'acció Mostra de la secció Dispositiu (heu d'especificar el nom del dispositiu). La utilitat mostra molta informació, sovint en diverses pàgines.
Vegem la interfície enp0s8 que utilitza la nostra nova connexió. Assegurem-nos que utilitza exactament l'adreça IP que hem establert anteriorment:

$ 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

Hi ha força informació. Destaquem el principal:

  • Nom de la interfície de xarxa: enp0s8.
  • Tipus de connexió: connexió Ethernet per cable.
  • Veiem l'adreça MAC del dispositiu.
  • Unitat de transmissió màxima (MTU) especificada — la mida màxima d'un bloc de dades útil d'un paquet que pot ser transmès pel protocol sense fragmentació.
  • Dispositiu connectat actualment.
  • Nom de la connexióquin dispositiu està utilitzant: ethernet-enp0s8.
  • El dispositiu utilitza el Adreça IP, que vam instal·lar anteriorment: 192.168.4.26/24.

Una altra informació es refereix als paràmetres d'encaminament i passarel·la de connexió per defecte. Depenen de la xarxa específica.

Editor interactiu de nmcli

nmcli també té un editor interactiu senzill, que pot ser més còmode per a alguns per treballar. Per executar-lo en una connexió ethernet-enp0s8, per exemple, utilitzeu acció edit:

$ nmcli connection edit ethernet-enp0s8

També té una petita ajuda, que, però, és de mida més petita que la versió de consola:

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

Si escriviu l'ordre d'impressió i premeu Intro, nmcli mostrarà totes les propietats de connexió:

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

Per exemple, per establir la connexió a DHCP, escriviu goto ipv4 i feu clic 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>

A continuació, escriviu el mètode establert automàticament i feu clic Enter:

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

Si voleu esborrar l'adreça IP estàtica, feu clic a Enter. En cas contrari, escriviu no i premeu Intro. Podeu desar-lo si creieu que el necessitareu en el futur. Però fins i tot amb una adreça IP estàtica desada, s'utilitzarà DHCP si el mètode està configurat com a automàtic.

Utilitzeu l'ordre desa per desar els canvis:

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

Escriviu sortir per sortir de l'editor interactiu nmcli. Si canvieu d'opinió sobre marxar, feu servir l'ordre enrere.

I això no és tot

Obriu l'editor interactiu nmcli i vegeu quants paràmetres hi ha i quantes propietats té cada paràmetre. L'editor interactiu és una eina fantàstica, però si voleu utilitzar nmcli en una línia o scripts, necessitareu la versió normal de la línia d'ordres.

Ara que teniu els conceptes bàsics, feu una ullada pàgina de manual nmcli per veure com us pot ajudar.

Sobre els drets de publicitat

Servidors èpics - És servidors virtuals a Windows o Linux amb potents processadors de la família AMD EPYC i unitats Intel NVMe molt ràpides. Afanya't a fer la comanda!

Gestió de connexions de xarxa a Linux mitjançant la utilitat de consola nmcli

Font: www.habr.com

Afegeix comentari