Gestione delle connessioni di rete in Linux utilizzando l'utilità della console nmcli

Sfrutta appieno lo strumento di gestione della rete NetworkManager sulla riga di comando di Linux utilizzando l'utilità nmcli.

Gestione delle connessioni di rete in Linux utilizzando l'utilità della console nmcli

Utilità nmcl chiama direttamente l'API per accedere alle funzioni di NetworkManager.

È apparso nel 2010 e per molti è diventato un modo alternativo per configurare interfacce e connessioni di rete. Anche se alcune persone lo usano ancora ifconfig. Poiché nmcli è uno strumento CLI (interfaccia a riga di comando) progettato per l'uso in finestre di terminale e script, è ideale per gli amministratori di sistema che lavorano senza GUI.

sintassi del comando ncmli

In generale, la sintassi è questa:

$ nmcli <options> <section> <action>

  • le opzioni sono parametri che determinano le sottigliezze del funzionamento di nmcli,
  • sezione (sezione): determina quali funzionalità dell'utilità utilizzare,
  • azione: consente di specificare cosa è effettivamente necessario fare.

Ci sono 8 sezioni in totale, ognuna delle quali è associata a un determinato insieme di comandi (azioni):

  • Aiuto fornisce assistenza sui comandi ncmcli e sul loro utilizzo.
  • Generale restituisce lo stato di NetworkManager e la configurazione globale.
  • Networking include comandi per interrogare lo stato della connessione di rete e abilitare/disabilitare le connessioni.
  • radio include comandi per interrogare lo stato della connessione della rete WiFi e abilitare/disabilitare le connessioni.
  • Monitorare include comandi per monitorare l'attività di NetworkManager e osservare i cambiamenti nello stato delle connessioni di rete.
  • Connessione include comandi per la gestione delle interfacce di rete, l'aggiunta di nuove connessioni e l'eliminazione di quelle esistenti.
  • Dispositivo utilizzato principalmente per modificare i parametri relativi al dispositivo (come il nome dell'interfaccia) o per connettere i dispositivi utilizzando una connessione esistente.
  • Segreto registra nmcli come un "agente segreto" di NetworkManager che ascolta i messaggi segreti. Questa sezione viene utilizzata raramente, perché nmcli funziona in questo modo per impostazione predefinita quando ci si connette alle reti.

Semplici esempi

Prima di iniziare, assicurati che NetworkManager sia in esecuzione e che nmcli possa comunicare con esso:

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

Il lavoro spesso inizia visualizzando tutti i profili di connessione di rete:

$ 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

Questo comando utilizza effetto mostra per la sezione Connessione.

La macchina di prova esegue Ubuntu 20.04. In questo caso, abbiamo trovato tre connessioni cablate: enp0s3, enp0s8 e enp0s9.

Gestisci le connessioni

È importante capire che in nmcli con il termine Connessione intendiamo un'entità che contiene tutte le informazioni sulla connessione. In altre parole, questa è la configurazione di rete. Connection incapsula tutte le informazioni relative alla connessione, incluse le informazioni sul livello di collegamento e sugli indirizzi IP. Questi sono Layer 2 e Layer 3 nel modello di rete OSI.

Quando si configura una rete in Linux, di solito si configurano connessioni che finiranno per essere legate ai dispositivi di rete, che a loro volta sono interfacce di rete installate sul computer. Quando un dispositivo utilizza una connessione, è considerato attivo o elevato. Se una connessione non è in uso, è inattiva o ripristinata.

Aggiunta di connessioni di rete

L'utilità ncmli consente di aggiungere rapidamente e configurare immediatamente le connessioni. Ad esempio, per aggiungere la connessione Wired 2 (con enp0s8), è necessario eseguire il seguente comando come superutente:

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

Nell'opzione type indichiamo che si tratterà di una connessione Ethernet e nell'opzione ifname (nome interfaccia) indichiamo l'interfaccia di rete che vogliamo utilizzare.

Questo è ciò che accadrà dopo aver eseguito il comando:

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

È stata creata una nuova connessione, ethernet-enp0s8. Gli è stato assegnato un UUID e il tipo di connessione era Ethernet. Aumentiamolo utilizzando il comando up:

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

Controlliamo nuovamente l'elenco delle connessioni attive:

$ 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

È stata aggiunta una nuova connessione ethernet-enp0s8, è attiva e utilizza l'interfaccia di rete enp0s8.

Configurazione delle connessioni

L'utilità ncmli consente di modificare facilmente i parametri delle connessioni esistenti. Ad esempio, è necessario modificare l'indirizzo IP dinamico (DHCP) in un indirizzo IP statico.

Diciamo che dobbiamo impostare l'indirizzo IP su 192.168.4.26. Per fare questo utilizziamo due comandi. Il primo imposterà direttamente l'indirizzo IP e il secondo cambierà il metodo di impostazione dell'indirizzo IP in manuale:

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

Non dimenticare di impostare anche la maschera di sottorete. Per la nostra connessione di prova questo è 255.255.255.0 o con /24 per il routing senza classi (CIDR).

Affinché le modifiche abbiano effetto è necessario disattivare e poi riattivare la connessione:

$ 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

Se invece devi installare DHCP, usa auto invece di manuale:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Lavorare con i dispositivi

Per questo utilizziamo la sezione Dispositivo.

Controllo dello stato del dispositivo

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

Richiesta di informazioni sul dispositivo

Per fare ciò, utilizzare l'azione mostra dalla sezione Dispositivo (è necessario specificare il nome del dispositivo). L'utilità visualizza molte informazioni, spesso su più pagine.
Diamo un'occhiata all'interfaccia enp0s8 utilizzata dalla nostra nuova connessione. Assicuriamoci che utilizzi esattamente l'indirizzo IP che abbiamo impostato in precedenza:

$ 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

Ci sono molte informazioni. Evidenziamo la cosa principale:

  • Nome dell'interfaccia di rete: enp0s8.
  • Tipo di connessione: connessione Ethernet cablata.
  • Vediamo l'indirizzo MAC del dispositivo.
  • Unità di trasmissione massima (MTU) specificata — la dimensione massima di un blocco di dati utile di un pacchetto che può essere trasmesso dal protocollo senza frammentazione.
  • Dispositivo attualmente connesso.
  • Nome della connessionequale dispositivo sta utilizzando: ethernet-enp0s8.
  • Il dispositivo utilizza il Indirizzo IP, che abbiamo installato in precedenza: 192.168.4.26/24.

Altre informazioni riguardano i parametri predefiniti del routing e del gateway di connessione. Dipendono dalla rete specifica.

Editor interattivo nmcli

nmcli ha anche un semplice editor interattivo, con cui per alcuni potrebbe essere più comodo lavorare. Per eseguirlo su una connessione ethernet-enp0s8, ad esempio, utilizzare effetto edit:

$ nmcli connection edit ethernet-enp0s8

Dispone anche di un piccolo aiuto, che però è di dimensioni più ridotte rispetto alla versione console:

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

Se digiti il ​​comando print e premi Invio, nmcli visualizzerà tutte le proprietà di connessione:

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

Ad esempio, per impostare la connessione su DHCP, digitare goto ipv4 e fare clic su entrare:

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>

Quindi scrivere il metodo impostato auto e fare clic entrare:

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

Se desideri cancellare l'indirizzo IP statico, fai clic su entrare. Altrimenti digita no e premi Invio. Puoi salvarlo se ritieni che ne avrai bisogno in futuro. Ma anche con un indirizzo IP statico salvato, verrà utilizzato DHCP se il metodo è impostato su automatico.

Utilizza il comando salva per salvare le modifiche:

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

Digitare quit per uscire dall'editor interattivo nmcli. Se cambi idea riguardo alla partenza, usa il comando Indietro.

E non è tutto

Apri l'editor interattivo nmcli e controlla quante impostazioni sono presenti e quante proprietà ha ciascuna impostazione. L'editor interattivo è un ottimo strumento, ma se desideri utilizzare nmcli in righe singole o script, avrai bisogno della normale versione da riga di comando.

Ora che hai le nozioni di base, dai un'occhiata pagina man nmcli per vedere in che altro modo può aiutarti.

Sui diritti della pubblicità

Server epici - E ' server virtuali su Windows o Linux con potenti processori della famiglia AMD EPYC e unità Intel NVMe molto veloci. Affrettati ad ordinare!

Gestione delle connessioni di rete in Linux utilizzando l'utilità della console nmcli

Fonte: habr.com

Aggiungi un commento