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

Utility accede direttamente all'API per utilizzare le funzionalità di NetworkManager.
È stato introdotto nel 2010 ed è diventato per molti un metodo alternativo per configurare interfacce di rete e connessioni. Anche se qualcuno continua a utilizzare . Poiché nmcli è uno strumento della riga di comando (CLI), progettato per essere utilizzato in finestre di terminale e script, si adatta perfettamente agli 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 operazioni di nmcli,
- section (sezione) — definisce quali funzionalità dell'utilità utilizzare,
- action (azione) — consente di specificare esattamente cosa si desidera fare.
Esistono in totale 8 sezioni, ognuna delle quali è collegata a un insieme di comandi (azioni):
- Aiuto fornisce assistenza sui comandi ncmcli e il loro utilizzo.
- Generale restituisce lo stato di NetworkManager e la configurazione globale.
- Networking includere comandi per richiedere lo stato della connessione di rete e per abilitare/disabilitare le connessioni.
- Radio includere comandi per richiedere lo stato della connessione alla rete WiFi e per abilitare/disabilitare le connessioni.
- Monitor includere comandi per monitorare l'attività di NetworkManager e tenere traccia delle modifiche dello stato delle connessioni di rete.
- Connection includere comandi per gestire le interfacce di rete, per aggiungere nuove connessioni e rimuovere quelle esistenti.
- Dispositivo viene principalmente utilizzato per modificare i parametri legati ai dispositivi (ad esempio, il nome dell'interfaccia) o per collegare i dispositivi utilizzando una connessione esistente.
- Secret registra nmcli come «agente segreto» di NetworkManager, che ascolta i messaggi segreti. Questa sezione è utilizzata raramente, poiché nmcli per impostazione predefinita funziona in questo modo quando si connette alle reti.
Esempi semplici
Prima di iniziare, assicurati che NetworkManager sia in esecuzione e che nmcli possa comunicare con esso:
$ nmcli general
STATO CONNETTIVITÀ WIFI-HW WIFI WWAN-HW WWAN
connesso completo abilitato abilitato abilitato abilitatoSpesso si inizia il lavoro osservando tutti i profili delle connessioni 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 enp0s9Questo comando utilizza l'azione show per la sezione Connection.
Sulla macchina di test è in esecuzione 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 Connection intendiamo un'entità che contiene tutte le informazioni sulla connessione. In altre parole, è la configurazione di rete. Connection incapsula tutte le informazioni relative alle connessioni, comprese quelle sul livello di collegamento e sulla configurazione degli indirizzi IP. Questi corrispondono al livello 2 e al livello 3 nel modello OSI.
Quando configuri una rete in Linux, di solito imposti connessioni che alla fine saranno collegate a dispositivi di rete, che a loro volta sono interfacce di rete installate sul computer. Quando un dispositivo utilizza una connessione, essa è considerata attiva o elevata. Se la connessione non è utilizzata, essa non è attiva o è disattivata.
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 con privilegi di 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 tratterà di una connessione Ethernet, e nell'opzione ifname (nome interfaccia) specificiamo l'interfaccia di rete che vogliamo utilizzare.
Ecco cosa apparirà dopo l'esecuzione del comando:
$ nmcli connection show
NOME UUID TYPE DISPOSITIVO
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. È stato assegnato un UUID e il tipo di connessione è Ethernet. Attiviamola usando 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 TYPE DISPOSITIVO
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, se è necessario passare da un indirizzo IP dinamico (DHCP) a uno statico.
Supponiamo di dover impostare l'indirizzo IP a 192.168.4.26. Per fare ciò, utilizziamo 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 prova, questa è 255.255.255.0, o con /24 per instradamento senza classi (CIDR).
Per applicare le modifiche, occorre disattivare e poi riattivare la connessione:
$ nmcli connection down ethernet-enp0s8
La connessione 'ethernet-enp0s8' è stata 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 DHCP invece di manual, utilizza auto:
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoGestione dei dispositivi
A tal fine, utilizziamo la sezione Device.
Controllo dello stato dei dispositivi
$ 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
Utilizziamo l'azione show della sezione Device (è necessario specificare il nome del dispositivo). L'utilità fornisce molte informazioni, spesso su più pagine.
Esaminiamo l'interfaccia enp0s8, che utilizza la nostra nuova connessione. Assicuriamoci che utilizzi 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=255Ci sono molte informazioni. Ecco i punti principali:
- Nome dell'interfaccia di rete: enp0s8.
- Tipo di connessione: connessione Ethernet cablata.
- Possiamo vedere l'indirizzo MAC del dispositivo.
- È 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.
Ulteriori informazioni riguardano i parametri predefiniti di instradamento e gateway della connessione. Dipendono dalla rete specifica.
Editor interattivo nmcli
nmcli ha anche un semplice editor interattivo, dove lavorare può essere più comodo per alcuni. Per avviarlo, ad esempio, per la connessione ethernet-enp0s8, usa l'azione edit:
$ nmcli connection edit ethernet-enp0s8Ha anche una piccola guida, che però è inferiore per dimensioni rispetto alla versione della console:
===| nmcli editor di connessione interattivo |===
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 si inserisce il comando print e si preme Invio, nmcli visualizzerà 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, digitare goto ipv4 e premere Enter:
nmcli> goto ipv4
Puoi modificare le seguenti proprietà: 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>Poi digita set method auto e premi Enter:
nmcli ipv4> set method auto
Vuoi anche cancellare 'ipv4.addresses'? [yes]:Se desideri rimuovere l'indirizzo IP statico, fai clic su Enter. In caso contrario, digita no e premi Invio. Puoi conservarlo se pensi che ti servirà in futuro. Ma anche con un indirizzo IP statico salvato, DHCP verrà utilizzato se il metodo è impostato su auto.
Utilizza il comando save per salvare le modifiche:
nmcli ipv4> save
Connessione 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) aggiornata con successo.
nmcli ipv4>Digita quit per uscire dall'editor interattivo di nmcli. Se hai cambiato idea su uscire, utilizza il comando back.
E questo non è tutto
Apri l'editor interattivo di nmcli e guarda quante configurazioni esistono e quanti attributi ha ciascuna configurazione. L'editor interattivo è uno strumento eccellente, ma se desideri utilizzare nmcli in una sola riga o in script, avrai bisogno della versione standard da riga di comando.
Ora che hai le basi, dai un'occhiata alla di nmcli per scoprire come può aiutarti ulteriormente.
In pubblicità
Server epici — rappresenta o Linux con potenti processori della famiglia AMD EPYC e dischi NVMe Intel molto veloci. Affrettati a ordinare!
Fonte: habr.com
