In qualità di amministratore di rete, probabilmente stai gestendo varie macchine Linux su diverse sottoreti della tua infrastruttura aziendale.
Man mano che la topologia di rete cambia, potrebbe essere necessario cambiare l'indirizzo IP già implementato su alcune macchine.
Inoltre, se sei passato dal DHCP all'indirizzamento IP statico, dovrai anche cambiare l'indirizzo IP su alcuni dei tuoi computer.
Fortunatamente per te, Linux ha diversi modi per cambiare il tuo indirizzo IP , se vuoi che sia dinamico o statico.
Vedrai come è possibile avere più indirizzi IP per una singola macchina e come assegnare indirizzi IP agli adattatori di rete virtuale.
Prerequisiti
Prima di modificare il tuo indirizzo IP, assicurati di dare un'occhiata al tuo attuale indirizzo IP.
Per trovare il tuo attuale indirizzo IP , puoi utilizzare il comando "ip" con l'opzione "a" per l'indirizzo.
$ ip a
Come puoi vedere dallo screenshot, il mio host è dotato di due adattatori di rete:
- l'indirizzo di loopback (o localhost) che viene utilizzato per testare la connettività di rete del proprio computer;
- l'interfaccia "enp0s3" :fungendo da adattatore di rete principale, alla scheda di rete sono associati più indirizzi IP (IPv4 e IPv6) seguiti dall'indirizzo IP loro assegnato.
Nella situazione attuale, il mio computer può essere raggiunto su "192.168.178.31/24" tramite il gateway "192.168.178.1/24".
Cambia l'indirizzo IP usando ifconfig
Nelle moderne distribuzioni, il comando "ifconfig" è stato completamente obsoleto ed ora si consiglia di utilizzare il comando “ip”.
Tuttavia, dovresti comunque essere in grado di utilizzare "ifconfig" per modificare il tuo indirizzo IP.
$ which ifconfig
/usr/sbin/ifconfig
Per modificare il tuo indirizzo IP su Linux, usa il comando “ifconfig” seguito dal nome della tua interfaccia di rete e dal nuovo indirizzo IP da modificare sul tuo computer.
Per assegnare la subnet mask, puoi aggiungere una clausola "netmask" seguita dalla subnet mask oppure utilizzare direttamente la notazione CIDR.
$ ifconfig <interface_name> <ip_address> netmask <netmask_address>
Nota :per modificare il tuo indirizzo IP, dovrai essere un amministratore del tuo computer (parte del gruppo sudo su Debian/Ubuntu o wheel su CentOS/RedHat)
Ad esempio, dati gli indirizzi IP utilizzati nelle sezioni precedenti, se vogliamo cambiare il nostro indirizzo IP (in 192.168.178.32/24), eseguiremo il seguente comando
$ ifconfig enp0s3 192.168.178.32/24
$ ifconfig enp0s3 192.168.178.32 netmask 255.255.255.0
Per verificare che il tuo indirizzo IP sia stato modificato correttamente, puoi eseguire il comando “ifconfig” seguito dal nome della tua scheda di rete.
$ ifconfig <interface_name>
Da DHCP a statico
Quando si modifica manualmente l'indirizzo IP, Linux comprende automaticamente che si desidera passare dall'utilizzo di un server DHCP all'indirizzamento IP statico.
Questa informazione si concretizza nel comando "ifconfig":nel primo screenshot, puoi vedere che il mio indirizzo IP è stato assegnato con una "dinamica ” parametro chiamato anche DHCP.
Questo non è più il caso dopo aver assegnato manualmente l'indirizzo IP.
Nota che le tue modifiche non vengono rese permanenti modificando le impostazioni IP con "ifconfig":vengono modificate solo per la sessione corrente.
Cambia indirizzo IP in modo permanente utilizzando ifupdown
Su Linux, la modifica dell'indirizzo IP utilizzando le utilità di rete non significa che la configurazione IP verrà salvata al riavvio.
File di rete su Debian e Ubuntu
Per modificare il tuo indirizzo IP su Linux, dovrai aggiungere la tua configurazione di rete in "/etc/network/interfaces" o creare questo file se non esiste già.
# Content of /etc/network/interfaces
iface eth0 inet static
address <ip_address>
netmask <network_mask>
gateway <gateway_ip>
Ad esempio, supponiamo che tu voglia modificare il tuo IP in "192.168.178.32" con una subnet mask di "255.255.255.0" e un gateway predefinito di "192.168.178.1".
Per modificare il tuo indirizzo IP in modo da riflettere tali modifiche, devi modificare il contenuto del file delle tue interfacce e aggiungere il seguente contenuto
$ vim /etc/network/interfaces
# Content of /etc/network/interfaces
iface eth0 inet static
address 192.168.178.32
netmask 255.255.255.0
gateway 192.168.178.1
Affinché le modifiche vengano applicate, dovrai riavviare il servizio di rete (gestito da ifupdown)
# For systemd hosts
$ sudo systemctl restart networking.service
# For pre-systemd hosts
sudo /etc/init.d/networking restart
Dopo aver riavviato il servizio di rete, dovresti essere in grado di vedere il tuo nuovo IP eseguendo il comando "ifconfig" o "ip".
$ ifconfig
$ ip address
File di rete su CentOS e Red Hat
Per modificare il tuo indirizzo IP su Linux, dovrai aggiungere la configurazione di rete nella directory "/etc/sysconfig/network-scripts".
In "/etc/sysconfig/network-scripts", identifica l'interfaccia di rete da modificare e inizia a modificarla.
$ ls -l /etc/sysconfig/network-scripts
$ nano <file>
Per impostare un IP statico su CentOS o RHEL, si desidera modificare "BOOTPROTO ” da “dhcp” a “statico” e aggiungi le informazioni sulla tua rete come la netmask o il gateway predefinito.
Su distribuzioni recenti come CentOS 8 o RHEL 8, devi utilizzare l'utilità nmcli affinché le modifiche siano effettive.
Tuttavia, se stai ancora utilizzando il servizio di rete (per distribuzioni come CentOS 7 o RHEL 7), puoi riavviare il servizio di rete per applicare le modifiche.
$ nmcli device reapply <interface_name> (on CentOS 8)
$ systemctl restart network.service (on CentOS 7/RHEL 7)
Eccezionale!
Hai cambiato correttamente il tuo indirizzo IP su Linux.
Assicurati di eseguire nuovamente il comando "ip" per verificare che le modifiche siano state applicate.
$ ip a
$ ifconfig
Cambia l'indirizzo IP utilizzando Network Manager
Sulle distribuzioni moderne, dotate di systemd, potresti esserti imbattuto in Network Manager molte volte.
Il gestore di rete è uno strumento all-in-one che espone più strumenti di utilità per modificare le connessioni, dispositivi o impostazioni di connettività (anche wireless) sul tuo host.
Una di queste utilità si chiama "nmcli" e questo è ciò che useremo per cambiare il nostro indirizzo IP.
Per modificare il tuo indirizzo IP, utilizza "nmcli" nella sezione "dispositivo" e specifica che desideri "modificare" "indirizzo ipv4" della tua scheda di rete.
$ nmcli device modify <interface_name> ipv4.address <ip_address>
Quando si utilizza il comando "nmcli device modify", Network Manager creerà automaticamente un nuovo file di connessione nella cartella /etc/NetworkManager/system-connections.
Affinché le modifiche siano effettive, dovrai "riapplicare" i parametri alle impostazioni di connessione correnti.
$ nmcli device reapply <interface_name>
Congratulazioni, hai cambiato con successo il tuo IP utilizzando Network Manager!
Tuttavia, la modifica delle impostazioni utilizzando lo strumento nmcli non renderà le modifiche persistenti su più riavvii.
Cambia indirizzo IP in modo permanente utilizzando Network Manager
Affinché le modifiche siano persistenti, è necessario modificare i file di connessione che si trovano in /etc/NetworkManager/system-connections.
Per modificare il tuo indirizzo IP, modifica il file di configurazione di Network Manager, identifica la riga da modificare e imposta l'indirizzo IP di conseguenza.
Salva il file e assicurati di riapplicare la configurazione del dispositivo utilizzando il comando "nmcli" con le opzioni di "riapplicazione dispositivo".
$ nmcli device reapply
Ora che le tue modifiche sono effettive, puoi controllare il tuo indirizzo IP eseguendo i comandi "ifconfig" o "ip".
Modifica l'indirizzo IP utilizzando l'interfaccia grafica
In alcuni casi, potresti voler modificare il tuo indirizzo IPv4 navigando attraverso le finestre grafiche.
Nelle moderne distribuzioni, i parametri di rete possono essere gestiti dall'icona "network" (che si chiama nm-applet) situata nell'angolo in alto a destra dello schermo.
Nelle impostazioni di rete, fai clic sulla "ruota dentata" accanto alla connessione da modificare.
Successivamente, nella sezione IPv4 delle impostazioni di connessione, puoi impostare il tuo metodo IP su manuale e attribuire il tuo indirizzo IP statico.
Per modificare il tuo indirizzo IP, fai semplicemente clic su "Applica" e riavvia i servizi di rete utilizzando nmcli.
$ nmcli networking off
$ nmcli networking on
Questo è tutto! Hai appena cambiato il tuo indirizzo IP su Linux.
Come viene gestita la rete su Linux
A partire da gennaio 2020, nelle distribuzioni recenti, potresti avere a che fare con diversi strumenti utilizzati dalla tua distribuzione per configurare la rete.
Il più delle volte, Network Manager e ifupdown gestiscono la rete.
$ sudo systemctl status NetworkManager
$ sudo systemctl status networking
In alcune distribuzioni, "ifupdown" potrebbe non essere installato affatto e le interfacce sono gestite solo da NetworkManager.
Tuttavia, se i due servizi sono presenti sul tuo computer, sarai in grado di dichiarare le interfacce nel file /etc/network/interfaces senza che NetworkManager interferisca con tali impostazioni.
Se vuoi che Network Manager gestisca le interfacce dichiarate nel file delle interfacce, dovrai modificare il parametro "gestito" su true nel file di configurazione NetworkManager.conf.
Conclusione
In questo tutorial, hai imparato come modificare correttamente il tuo indirizzo IP su Linux:utilizzando Network Manager o l'utilità ifupdown.
Hai anche imparato come la rete è gestita e architettata su Linux e come dovresti configurarla per evitare conflitti di indirizzi IP.
Se sei interessato all'amministrazione del sistema Linux, abbiamo una sezione completa ad essa dedicata sul sito Web, quindi assicurati di dargli un'occhiata!