Ricerca nel sito web

Come configurare la rete IP con 'nmcli' in Linux


Come amministratore Linux, hai vari strumenti da utilizzare per configurare le tue connessioni di rete, come nmtui, il tuo NetworkManager con interfaccia utente grafica GNOME e, naturalmente, nmcli (strumento da riga di comando del gestore di rete).

Ho osservato molti amministratori utilizzare nmtui per la sua semplicità. Tuttavia, l'utilizzo di nmcli ti fa risparmiare tempo, aumenta la tua sicurezza, consente l'integrazione negli script ed è lo strumento principale per la risoluzione dei problemi di rete dei server Linux, ripristinandone rapidamente la funzionalità.

Avendo notato numerosi commenti in cerca di aiuto con nmcli, ho deciso di scrivere questo articolo. Naturalmente, dovresti sempre leggere attentamente le pagine man (sono la risorsa numero 1 per te). Il mio obiettivo è farti risparmiare tempo e fornirti alcuni suggerimenti utili.

Sintassi del comando nmcli

La sintassi di nmcli è:

nmcli [OPTIONS] OBJECT {COMMAND | help}

Dove OBJECT è uno tra generale, rete, radio, connessione, dispositivo e agente.

Controlla lo stato del dispositivo di rete in Linux

Un buon punto di partenza sarebbe controllare i nostri dispositivi:

nmcli dev status

DEVICE      TYPE      STATE         CONNECTION 
docker0     bridge    connected     docker0    
virbr0      bridge    connected     virbr0     
enp0s3      ethernet  connected     enp0s3     
virbr0-nic  ethernet  disconnected  --         
lo          loopback  unmanaged     --         

Come possiamo vedere nella prima colonna, c'è un elenco dei nostri dispositivi di rete. Abbiamo una scheda di rete con il nome enp0s3. Sul tuo computer potresti vedere nomi diversi.

La denominazione dipende dal tipo di scheda di rete (se è integrata, una scheda PCI, ecc.). Nell'ultima colonna vediamo i nostri file di configurazione, che vengono utilizzati dai nostri dispositivi per connettersi alla rete

È semplice capire che i nostri dispositivi, da soli, non possono fare nulla. Hanno bisogno che creiamo un file di configurazione per istruirli su come ottenere la connettività di rete. Questi file sono anche chiamati "profili di connessione" e li troviamo nella directory /etc/sysconfig/network-scripts.

cd /etc/sysconfig/network-scripts/
ls
Uscita del campione
ifcfg-enp0s3  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo      ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown        ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep   ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth    ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib     ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp   ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6   ifdown-tunnel    ifup-isdn     ifup-TeamPort

Come puoi vedere qui, i file con nomi che iniziano con 'ifcfg-' (configurazione dell'interfaccia) sono profili di connessione. Quando creiamo una nuova connessione o ne modifichiamo una esistente con nmcli o nmtui, i risultati vengono salvati qui come profili di connessione.

Te ne mostrerò due dalla mia macchina, uno con una configurazione DHCP e uno con IP statico.

cat ifcfg-static1
cat ifcfg-Myoffice1

Ci rendiamo conto che alcune proprietà hanno valori diversi e altre non esistono se non sono necessarie.

Diamo una rapida occhiata a quelli più importanti.

  • TYPE – qui abbiamo il tipo Ethernet. Potremmo anche avere WiFi, team, bond e altri.
  • DEVICE – il nome del dispositivo di rete associato a questo profilo.
  • BOOTPROTO – se ha il valore “dhcp ”, il nostro profilo di connessione ottiene un IP dinamico dal server DHCP. Se ha il valore “none ”, non utilizza un IP dinamico e probabilmente assegniamo un IP statico.
  • IPADDR – è l'IP statico che assegniamo al nostro profilo.
  • PREFIX – la maschera di sottorete. Un valore di 24 significa 255.255.255.0. Puoi comprendere meglio la maschera di sottorete annotando il suo formato binario. Ad esempio, i valori 16, 24 e 26 indicano che i primi 16, 24< o 26 bit, rispettivamente, sono impostati su 1 e il resto è 0. Ciò definisce l'indirizzo di rete e l'intervallo di indirizzi IP che possono essere assegnati.
  • GATEWAY – l'IP del gateway.
  • DNS1, DNS2 – due server DNS che vogliamo utilizzare.
  • ONBOOT – se ha il valore “sì” significa che all'avvio il nostro computer leggerà questo profilo e proverà ad assegnarlo al suo dispositivo.

Controlla la connessione di rete in Linux

Ora andiamo avanti e controlliamo le nostre connessioni:

nmcli con show

L'ultima colonna di dispositivi ci aiuta a capire quale connessione è "UP" e funzionante e quale no. Nell'immagine sopra puoi vedere le due connessioni attive: Myoffice1 e enp0s8.

Suggerimento: se vuoi vedere solo le connessioni attive, digita:

nmcli con show -a

Suggerimento: puoi usare il completamento automatico premendo Tab quando usi nmcli, ma è meglio usare formato minimo del comando.

Pertanto, i seguenti comandi sono uguali:

nmcli connection show
nmcli con show
nmcli c s

Controlla l'indirizzo IP in Linux

Se controllo gli indirizzi IP dei miei dispositivi:

ip a

Vedo che il mio dispositivo enp0s3 ha preso l'IP 192.168.1.6 dal server DHCP perché il profilo di connessione Myoffice1 attivo ha una configurazione DHCP.

Se apro “up ” il mio profilo di connessione con nome static1, il mio dispositivo assumerà l'IP statico 192.168.1.40 come definito nel profilo di connessione.

nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show

Vediamo ancora l'indirizzo IP:

ip a

Possiamo creare il nostro primo profilo di connessione. Le proprietà minime che dobbiamo definire sono type, ifname, e con-name:

  • type – per il tipo di connessione.
  • ifname – per il nome del dispositivo assegnato alla nostra connessione.
  • con-name – per il nome della connessione.

Creazione di una nuova connessione Ethernet in Linux

Effettuiamo una nuova connessione ethernet con il nome Myhome1, assegnata ad un dispositivo enp0s3:

nmcli con add type ethernet con-name Myhome1 ifname enp0s3

Controlla la sua configurazione:

cat ifcfg-Myhome1

Come puoi vedere ha BOOTPROTO=dhcp, perché non abbiamo fornito alcun indirizzo IP statico.

Suggerimento: Possiamo modificare qualsiasi connessione con il comando “nmcli con mod“. Tuttavia, se modifichi una connessione DHCP e la imposti in statica, non dimenticare di cambiarla “ipv4.method ” da “auto ” a “manual ” . Altrimenti ti ritroverai con due indirizzi IP: uno dal server DHCP e quello statico.

Creiamo un nuovo profilo di connessione Ethernet con nome static2, che verrà assegnato a un dispositivo enp0s3, con IP statico 192.168.1.50, sottorete maschera 255.255.255.0=24, e gateway 192.168.1.1.

nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1

Controlla la sua configurazione:

cat ifcfg-static2

Modifica i server DNS in Linux

Modifichiamo l'ultimo profilo di connessione e aggiungiamo due server DNS.

nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

Suggerimento: C'è qualcosa a cui devi prestare attenzione: le proprietà per l'indirizzo IP e il gateway hanno nomi diversi quando aggiungi e quando modifichi una connessione. Quando aggiungi connessioni usi “ip4 ” e “gw4 ”, mentre quando le modifichi usi “ipv4 ” e “ gwv4 ".

Visualizza la connessione Ethernet in Linux

Ora visualizziamo questo profilo di connessione:

nmcli con down static1 ; nmcli con up static2

Come puoi vedere, il dispositivo enp0s3 ora ha un indirizzo IP 192.168.1.50.

ip a

Suggerimento: ci sono molte proprietà che puoi modificare. Se non li ricordate a memoria potete aiutarvi digitando “nmcli con show ” e poi il nome della connessione:

nmcli con show static2

È possibile modificare tutte queste proprietà scritte in minuscolo.

Ad esempio: quando disattivi un profilo di connessione, il NetworkManager cerca un altro profilo di connessione e lo richiama automaticamente. (Lo lascio come esercizio per verificarlo). Se non desideri che il tuo profilo di connessione si connetta automaticamente:

nmcli con mod static2 connection.autoconnect no

L'ultimo esercizio è molto utile: hai creato un profilo di connessione ma vuoi che venga utilizzato da utenti specifici. È utile classificare i tuoi utenti!

Imposta le autorizzazioni di connessione Ethernet su Utente in Linux

Permettiamo solo all'utente stella di utilizzare questo profilo:

nmcli con mod static2 connection.permissions stella

Suggerimento: se desideri concedere i permessi a più di un utente, devi digitare user:user1,user2 senza spazi vuoti tra di loro:

nmcli con mod static2 connection.permissions user:stella,john

Se accedi come un altro utente non potrai “visualizzare” questo profilo di connessione:

nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts

Un messaggio di errore dice che la connessione 'static2' non esiste, anche se vediamo che esiste. Questo perché un utente corrente non ha l'autorizzazione per attivare questa connessione.

Conclusione: non esitate a utilizzare nmcli. È facile e utile.


Tutti i diritti riservati. © Linux-Console.net • 2019-2024