Introduzione
Solitamente, nella maggior parte delle reti, l'indirizzo IP è assegnato ai dispositivi in modo dinamico dal server DHCP incluso nel router. Tuttavia in alcuni casi potrebbe essere necessario assegnare un IP statico a un determinato dispositivo, per esempio un indirizzo statico è utile nel caso si voglia effettuare il forwarding di una porta.
In questa guida vedremo come impostare un Indirizzo IP Statico su un server Ubuntu 20.04, ma la medesima procedura può essere applicata anche ad altre versioni del sistema operativo senza necessità di modifiche.
Indirizzo IP Statico tramite DHCP
Il modo più semplice e consigliato per assegnare un IP statico a un dispositivo sulla tua rete LAN è configurare un DHCP Statico sul router della rete. Il DHCP Statico è una funzione che si può trovare su molti router che consente di riservare un indirizzo IP e assegnarlo sempre allo stesso client ad ogni richiesta per un indirizzo IP che il client effettua al server DHCP. Questo metodo funziona "collegando" un indirizzo IP statico all'indirizzo MAC unico del client.

I metodi per l'utilizzo di questa funzionalità possono variare da router a router, è consigliabile quindi consultare il manuale del dispositivo per avere maggiori informazioni.
Netplan
A partire da Ubuntu 17.10 viene utilizzato Netplan come strumento per la gestione della rete. Le versioni precedenti utilizzavano invece ifconfig e il suo file di configurazione /etc/network/interfaces
per gestire la configurazione della rete.
I file di configurazione di Netplan sono salvati con estensione .yml e utilizzano quindi la sintassi YAML. Per configurare un'interfaccia di rete con Netplan sarà quindi necessario creare una descrizione in YAML per l'interfaccia, a quel punto Netplan si occuperà di generare i file di configurazione necessari per il renderer scelto.
Netplan supporta due renderer: Network Manager, tipicamente utilizzato su ambienti Desktop e system-networked, utilizzato invece sui server senza interfaccia grafica.
Configurare un indirizzo IP Statico su Ubuntu Server
Trovare il nome dell'interfaccia
Su Ubuntu le interfacce di rete sono identificate utilizzando i "nomi prevedibili" delle interfacce, metodo che consente di avere nomi univoci e statici nel tempo.
Il primo passo nel processo di configurazione dell'IP Statico è quindi identificare il nome dell'interfaccia che desideriamo configurare. Per farlo possiamo utilizzare il comando ip link
:
ip link
Questo comando consente di visualizzare un elenco di tutte le interfacce di rete disponibili e l'output dovrebbe essere simile al seguente:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff
In questo caso l'interfaccia che ci interessa si chiama ens3
.
I file di configurazione di Netplan sono memorizzati nella directory /etc/netplan, in cui molto probabilmente troverai già qualche file YAML salvato. I nomi dei file solitamente cambiano da sistema a sistema, ma potrebbero essere simili a 01-netcfg.yaml
o 50-cloud-init.yaml
, seguendo comunque la struttura numero-
nome
dell'interfaccia.
Disabilitare clount-init
Se la tua installazione di Ubuntu cloud è stata fornita con cloud-init, sarà necessario disabilitarlo. Per farlo, inizia creando il seguente file:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Poi all'interno del file inseriamo questo breve codice:
network: {
config: disabled
}
Configurare l'Indirizzo IP Statico
Ora per assegnare l'IP statico alla scheda di rete da noi scelta, apriamo il file di configurazione YAML relativo alla scheda con un editor di testo:
sudo nano /etc/netplan/01-netcfg.yaml
All'apertura del file, il contenuto sarà più o meno come questo:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: yes
Prima di andare a modificare la configurazione, spieghiamo brevemente il codice contenuto in questo file di configurazione.
Ogni file YAML di Netplan inizia con la keyword network
, al di sotto della quale troviamo altre chiavi: la prima (version
) è la versione del formato in cui è scritto il file, la seconda (renderer
) è impostata di default a networkd
se abbiamo installato Ubuntu Server.
Dopo queste due chiavi ne troviamo una terza, che rappresenta il tipo di dispositivo e può essere impostata a ethernets
, bonds
, bridges
o vlans
.
Sotto il tipo di dispositivo possiamo impostare una o più interfacce di rete. In questo file abbiamo solamente una interfaccia, ens3
, che è configurata per ottenere un IP da un server DHCP (dhcp4: yes
).
Per configurare un indirizzo IP all'interfaccia ens3, modifichiamo la configurazione in questo modo:
- Impostiamo il DHCP a no:
dhcp4: no
; - Specifichiamo l'indirizzo IP statico sotto la chiave
addresses
, in cui possiamo aggiungere uno o più indirizzi IPv4 o IPv6 che verranno assegnati all'interfaccia di rete; - Sotto la chiave
gateway4
specifichiamo il gateway; - Specifichiamo i
nameservers
, configurando gli indirizzi IP dei name servers.
Ecco come dovrebbe appare il nostro file dopo le modifiche:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: no
addresses:
- 192.168.2.103/24
gateway4: 192.168.2.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
Durante la modifica di un file YAML, assicurati di rispettare sempre la sintassi corretta del linguaggio, nel caso non venisse fatto, i cambiamenti alla configurazione non saranno applicati.
Applicare le modifiche
Una volta terminate le modifiche possiamo uscire dall'editor salvando il file e applichiamo le modifiche utilizzando il seguente comando:
sudo netplan apply
Controlliamo ora se i nostri cambiamenti hanno avuto successi con:
ip addr show dev ens3
Se diamo un'occhiata all'output possiamo vedere che il nostro cambiamento ha avuto effetto:
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff
inet 192.168.121.221/24 brd 192.168.121.255 scope global dynamic ens3
valid_lft 3575sec preferred_lft 3575sec
inet6 fe80::5054:ff:feb0:f500/64 scope link
valid_lft forever preferred_lft forever
Finito! Ora il nostro server con Ubuntu ha finalmente un IP Statico!
Configurare un Indirizzo IP Statico su Ubuntu Desktop
Configurare un indirizzo IP Statico su Ubuntu Desktop è molto più semplice rispetto alla controparte Server del sistema operativo, e non richiede assolutamente nessuna competenza tecnica.
La prima cosa da fare è aprire il pannello delle "Impostazioni" e poi, dal menu laterale di sinistra, andare sulla scheda "Network".

Qui potrete vedere tutte le vostre connessioni, in questo caso io ho solamente una connessione via cavo di rete, quindi "Wired". Per aprire le impostazioni di quella connessione basterà premere sull'icona di impostazioni posta sulla destra.

Una volta che si sarà aperta questa finestra, dovrete andare sulla tab "IPv4" e selezionare come metodo "Manual". A questo punto potremo compilare tutti i campi sottostanti con l'indirizzo IP, la maschera di rete, il gateway e i DNS.
Per verificare che i cambiamenti siano andati a buon fine, apriamo il terminale con la combinazione di tasti Ctrl + Alt + T
oppure con Tasto Destro > Apri Terminale
e eseguiamo il seguente comando:
ip addr
Nell'output del comando potremmo cercare l'indirizzo IP e verificare che sia quello che abbiamo impostato staticamente, vedremo così che il nostro procedimento è andato a buon fine.

Conclusione
In questa guida abbiamo visto come impostare un indirizzo IP Statico su Ubuntu 20.04, sia versione Server che versione Desktop. Ovviamente il procedimento mostrato può essere utilizzato anche per altre versioni.