Sfrutta tutte le funzionalità dello strumento di gestione delle connessioni di rete NetworkManager nella riga di comando di Linux utilizzando l'utilità nmcli.

Utilità accede direttamente all'API per accedere alle funzioni di NetworkManager.
È stato introdotto nel 2010 e per molti è diventato un modo alternativo per configurare le interfacce e le connessioni di rete. Anche se alcuni continuano a utilizzare . Poiché nmcli è uno strumento della riga di comando (CLI) progettato per essere utilizzato in finestre di terminale e script, è perfetto per gli amministratori di sistema che lavorano senza GUI.
La sintassi dei comandi ncmli
In generale, la sintassi è la seguente:
$ nmcli - options sono i parametri che definiscono le specifiche del funzionamento di nmcli,
- section (sezione) definisce quali funzionalità dell'utilità utilizzare,
- action (azione) consente di specificare cosa, esattamente, deve essere fatto.
Ci sono 8 sezioni, ognuna delle quali è associata a un 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 includere comandi per richiedere lo stato della connessione di rete e attivare / disattivare le connessioni.
- Radio includere comandi per richiedere lo stato della connessione WiFi e attivare / disattivare le connessioni.
- Monitora includere comandi per monitorare l'attività di NetworkManager e osservare i cambiamenti di stato delle connessioni di rete.
- Connection includere comandi per gestire le interfacce di rete, per aggiungere nuove connessioni e rimuovere quelle esistenti.
- Device viene utilizzato principalmente per modificare le impostazioni relative ai dispositivi (ad esempio, il nome dell'interfaccia) o per connettere dispositivi utilizzando una connessione esistente.
- Secret registra nmcli come "agente segreto" di NetworkManager che ascolta i messaggi riservati. Questa sezione è raramente utilizzata, poiché nmcli di default funziona in questo modo quando si collega alle reti.
Esempi semplici
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 enabledSpesso si inizia visualizzando tutti i profili delle connessioni di rete:
$ nmcli connection show
NOME UUID TIPO DISPOSITIVO
Connessione cablata 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Connessione cablata 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Connessione cablata 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9Questo comando utilizza l'azione show per la sezione Connessione.
Sulla macchina di test gira Ubuntu 20.04. In questo caso abbiamo trovato tre connessioni cablate: enp0s3, enp0s8 e enp0s9.
Gestione delle connessioni
È importante comprendere che in nmcli con il termine Connessione intendiamo un'entità che contiene tutte le informazioni sulla connessione. In altre parole, è la configurazione di rete. La Connessione racchiude tutte le informazioni relative alle connessioni, inclusi il livello di collegamento e le informazioni sull'indirizzamento IP. Questi sono il livello 2 e il livello 3 nel modello OSI.
Quando si configura una rete in Linux, di solito si impostano connessioni che saranno collegate a dispositivi di rete, i quali a loro volta sono interfacce di rete installate sul computer. Quando un dispositivo utilizza una connessione, viene considerato attivo o attivato. Se la connessione non viene utilizzata, è inattiva o disattivata.
Aggiunta di connessioni di rete
L'utility nmcli consente di aggiungere e configurare rapidamente connessioni. Ad esempio, per aggiungere la Connessione cablata 2 (con enp0s8), è necessario eseguire il seguente comando come superutente:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connessione 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) aggiunta con successo.Nell'opzione type indichiamo che si tratta di una connessione Ethernet, e nell'opzione ifname (nome dell'interfaccia) indichiamo l'interfaccia di rete che vogliamo utilizzare.
Ecco cosa accadrà dopo aver eseguito il comando:
$ nmcli connection show
NOME UUID TIPO DISPOSITIVO
Connessione cablata 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Connessione cablata 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Connessione cablata 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet -- È stata creata una nuova connessione, ethernet-enp0s8. Le è stato assegnato un UUID, il tipo di connessione è Ethernet. Attiviamola con il comando up:
$ nmcli connection up ethernet-enp0s8
Connessione attivata con successo (Percorso attivo D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/4)Controlliamo di nuovo l'elenco delle connessioni attive:
$ nmcli connection show --active
NOME UUID TIPO DISPOSITIVO
Connessione cablata 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8
Connessione cablata 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 le impostazioni delle connessioni esistenti. Ad esempio, potrebbe essere necessario passare da un indirizzo IP dinamico (DHCP) a un indirizzo IP statico.
Supponiamo di voler impostare l'indirizzo IP su 192.168.4.26. Per fare ciò, utilizzeremo due comandi. Il primo imposterà direttamente l'indirizzo IP, mentre il secondo cambierà il metodo di assegnazione dell'indirizzo IP a "manuale":
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manualNon dimenticare di impostare anche la maschera di sottorete. Per la nostra connessione di test, è 255.255.255.0, oppure /24 per il routing senza classi (CIDR).
Per applicare le modifiche, è necessario disattivare e poi riattivare la connessione:
$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' disattivata con successo (percorso attivo D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connessione attivata con successo (percorso attivo D-Bus: /org/freedesktop/NetworkManager/ActiveCSe hai bisogno di impostare il DHCP, invece di manual usa auto:
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoGestione dei dispositivi
Per questo utilizziamo la sezione Dispositivo.
Verifica dello stato dei dispositivi
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connesso Wired connection 1
enp0s8 ethernet connesso ethernet-enp0s8
enp0s9 ethernet connesso Wired connection 3
lo loopback non gestito -- Richiesta di informazioni sul dispositivo
Per questo, utilizziamo l'azione show dalla sezione Dispositivo (è necessario specificare il nome del dispositivo). L'utilità mostra molte informazioni, spesso su più pagine.
Diamo un'occhiata all'interfaccia enp0s8, che utilizza la nostra nuova connessione. Assicuriamoci che stia usando 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 (connesso)
GENERAL.CONNECTION: ethernet-enp0s8
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER: attivo
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=255Le informazioni sono abbastanza dettagliate. Vediamo i punti principali:
- Nome dell'interfaccia di rete: enp0s8.
- Tipo di connessione: connessione Ethernet cablata.
- Vediamo l'indirizzo MAC del dispositivo.
- È stato specificato il Maximum Transmission Unit (MTU) — la dimensione massima del blocco di dati utile di un pacchetto che può essere trasmesso dal protocollo senza frammentazione.
- Dispositivo attualmente connesso.
- Nome della connessione, che utilizza il dispositivo: ethernet-enp0s8.
- Il dispositivo utilizza quello indirizzo IP, che abbiamo impostato in precedenza: 192.168.4.26/24.
Altre informazioni riguardano le impostazioni predefinite di instradamento e gateway della connessione. Queste dipendono dalla rete specifica.
Editor interattivo nmcli
nmcli ha anche un semplice editor interattivo, in cui può essere più comodo lavorare per qualcuno. Per avviarlo, ad esempio, per la connessione ethernet-enp0s8, usa l'azione edit:
$ nmcli connection edit ethernet-enp0s8Ha anche una piccola guida, che tuttavia è inferiore rispetto alla versione da console:
===| nmcli editor di connessione interattivo |===
Modifica la connessione '802-3-ethernet' esistente: 'ethernet-enp0s8'
Digita 'help' o '?' per i comandi disponibili.
Digita 'print' per mostrare tutte le proprietà della connessione.
Digita 'describe [<setting>.<prop>]' per la descrizione dettagliata della proprietà.
Puoi modificare le seguenti impostazioni: connessione, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>Se digiti il comando print e premi Invio, nmcli mostrerà tutte le proprietà della connessione:
===============================================================================
Dettagli del profilo di connessione (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 (predefinito)
connection.multi-connect: 0 (predefinito)
connection.auth-retries: -1
connection.timestamp: 1593967212
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (predefinito)
connection.secondaries: --Ad esempio, per impostare la proprietà DHCP per la connessione, digita goto ipv4 e premi Invio:
nmcli> goto ipv4
Puoi modificare le seguenti proprietà: metodo, dns, dns-search,
dns-options, dns-priority, indirizzi, gateway, rotte, route-metric,
tabella di routing, regole di routing, 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>Poi scrivi set method auto e premi Invio:
nmcli ipv4> set method auto
Vuoi anche cancellare 'ipv4.addresses'? [sì]:Se desideri cancellare l'indirizzo IP statico, premi Invio. Altrimenti, inserisci no e premi Invio. Puoi salvarlo se pensi che ti servirà in futuro. Ma anche con un indirizzo IP statico salvato, verrà utilizzato DHCP se il metodo è impostato su auto.
Usa il comando save per salvare le modifiche:
nmcli ipv4> save
Connessione 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) aggiornata con successo.
nmcli ipv4>Inserisci quit per uscire dall'editor interattivo nmcli. Se hai cambiato idea e non vuoi uscire, usa il comando back.
E questo non è tutto.
Apri l'editor interattivo nmcli e scopri quante impostazioni esistono e quali proprietà ha ciascuna impostazione. L'editor interattivo è uno strumento eccellente, ma se desideri utilizzare nmcli in comandi singoli o script, avrai bisogno della versione standard da riga di comando.
Ora che hai le basi, dai un'occhiata alla nmcli per sapere come può aiutarti ulteriormente.
In base alla pubblicità
Server epici è o Linux con potenti processori della famiglia AMD EPYC e velocissimi dischi NVMe Intel. Affrettati a ordinare!
Fonte: habr.com
