In passato, per assegnare un indirizzo IP statico al sistema con Ubuntu Server, si procedeva modificando il file /etc/network/interfaces. Ubuntu 17.10 e successivi, però, hanno adottato il nuovo netplan, che si porta in dote un sistema tutto suo: di conseguenza, pur specificando l'indirizzo IP statico desiderato nel file interfaces, il sistema lo ignora. Vediamo allora la nuova modalità per impostare manualmente un indirizzo IP statico su Ubuntu Server 17.10

Ubuntu Server 17.10, IP statico: guida impostare manualmente indirizzo rete ( quando /etc/network/interfaces non funziona) - ubuntu server ip statico network interfaces spotlight

Nota: questo articolo è incentrato sulla procedura per configurare l'indirizzo IP con Ubuntu Server 17.10 e successivi. Non funziona con le versioni precedenti e non è la strada più indicata con Ubuntu Desktop: sull'edizione per PC è infatti meglio agire da l'interfaccia grafica:

» Leggi: Guida: impostare manualmente l'indirizzo IP statico della rete con Ubuntu

Passo 1: Verifica della configurazione attuale

Prima di configurare un indirizzo IP statico sul server, dobbiamo:

  1. verificare gli eventuali valori assegnati automaticamente ed impiegati dalla configurazione attuale
  2. scoprire il nome dell'interfaccia di rete alla quale vogliamo assegnare l'indirizzo IP statico

Allo scopo, impartire:

ip addr

Il comando visualizza tutte le interfacce di rete presenti sul sistema e la loro configurazione attuale. Nel caso mostrato nello sceenshot seguente, il nome dell'interfaccia per la quale specificare l'indirizzo IP statico è enp0s3

Ubuntu Server 17.10, IP statico: guida impostare manualmente indirizzo rete ( quando /etc/network/interfaces non funziona) - VirtualBox_Ubuntu Server_01_11_2017_18_11_12

È una buona idea salvare l'output di questo comando prima di proseguire, per consultazione futura. Possiamo trascrivere a mano, fare copia-incolla, oppure impartire quanto segue per salvare tutto quanto in un file di testo:

sudo ip addr > /home/config-rete-precedente.txt

Passo 2: Eliminare i file di configurazione dinamica

Ora dobbiamo verificare che non esistano configurazioni di rete pre-esistenti caricate dinamicamente. Eseguiamo quanto segue:

cd /etc/network/interfaces.d/

Se otteniamo un errore possiamo andare oltre dato che non ve ne sono. In caso contrario, visualizziamo i file presenti:

ls -la

Se troviamo dei file in questa cartella, eliminiamoli (comando sudo rm nomefile.estensione) oppure spostiamoli fuori da questa directory (sudo mv nomefile.estensione /home/).

Passo 3: Ripulire /etc/network/interfaces

Procediamo ora a ripulire /etc/network/interfaces, ovvero il file di configurazione che, nelle generazioni precedenti di Ubuntu, conservava la configurazione di rete. Apriamolo con l'editor:

sudo nano /etc/network/interfaces

Se ottenete un errore, dovete installare "nano" dal repository.

Verifichiamo che sia presente solo la configurazione per l'interfaccia di loopback, ovvero quella che consente al sistema di comunicare con se stesso. Oltre ai commenti di testa, devono dunque figurare solo queste due righe

auto lo

iface lo inet loopback

Eliminiamo (combinazione da tastiera: Ctrl+K) tutte le altre righe

Ubuntu Server 17.10, IP statico: guida impostare manualmente indirizzo rete ( quando /etc/network/interfaces non funziona) - VirtualBox_Ubuntu Server_01_11_2017_18_21_38

Premete infine Ctrl+O e quindi Invio per salvare, poi Ctrl+X per uscire.

» Leggi anche: Guida: modificare i file di configurazione di Linux Ubuntu/CentOS da terminale è facile con "nano" (alternativa a "vi")

Passo 4 : Impostare l'indirizzo IP statico con Ubuntu Server

Apriamo ora il nuovo file che in Ubuntu Server 17.10 gestisce la configurazione di rete:

sudo nano /etc/netplan/01-netcfg.yaml

Individuiamo qui la riga che riporta il nome del'interfaccia di rete alla quale vogliamo assegnare un indirizzo IP statico (avevamo scoperto detto nome al Passo 1). Subito sotto, dovrebbe leggersi dhcp4: yes

Ubuntu Server 17.10, IP statico: guida impostare manualmente indirizzo rete ( quando /etc/network/interfaces non funziona)

Eliminare l'impostazione dhcp4: yes e, al suo posto, inserire quanto segue:

dhcp4: no

dhcp6: no

addresses: [192.168.0.99/24]

gateway4: 192.168.0.1

nameservers:

addresses: [8.8.8.8,8.8.4.4]

Ubuntu Server 17.10, IP statico: guida impostare manualmente indirizzo rete ( quando /etc/network/interfaces non funziona)

Dove:

  • dhcp4: no e dhcp6: no: disabilitano la configurazione automatica della rete (client DHCP)
  • addresses: è l'indirizzo IP statico che desideriamo assegnare al server (v. seguito)
  • gateway4: è l'indirizzo IP del router che consente l'accesso ad Internet. In ambito domestico possiamo scoprirlo facilmente, mentre in ambito aziendale facciamo riferimento al valore trovato al Passo 1 oppure chiediamo al sistemista
  • nameservers e relativo addresses: gli indirizzi IP dei server DNS che vogliamo usare

Come server DNS, valutiamo di scegliere uno di questi due servizi (se non abbiamo necessità specifiche):

  • Google Public DNS: [8.8.8.8,8.8.4.4]
  • OpenDNS: [208.67.222.222,208.67.220.220]

Per quanto riguarda l'indirizzo IP statico da assegnare, ricordiamo che:

  1. deve far parte della stessa rete del Gateway (ovvero del modem/router, quando si svolge l'operazione in ambito domestico)
  2. deve essere univoco all'interno della nostra rete locale
  3. deve terminare esplicitamente con /24, ovvero l'indicazione del numero di byte che identificano la rete

Se stiamo partendo da zero, potremmo decidere di usare la rete 192.168.0.0 e, di conseguenza, assegnare 192.168.0.1 al router, 192.168.0.2 al primo PC, 192.168.0.3 al secondo e via dicendo.

Per sincerarsi che nessun altro PC stia già usando l'indirizzo IP che stiamo pensando di assegnare staticamente, apriamo il Terminale e impartiamo, ad esempio, ping 192.168.0.2. Se non risponde alcun dispositivo, allora siamo ragionevolmente tranquilli che l'indirizzo immesso sia ancora disponibile.

Premete infine Ctrl+O e quindi Invio per salvare, poi Ctrl+X per uscire.

Passo 5: Applicare le modifiche

Per rendere effettive eseguiamo questo comando:

sudo netplan generate && sudo netplan apply

Se non vengono mostrati errori, l'operazione è stata terminata con successo.

Segnalo che, durante le prove che ho svolto per preparare questo articolo, ho ricevuto il seguente errore:

Error in network definition //etc/netplan/01-netcfg.yaml line 9 column 19: address '192.168.0.99' is missing /prefixlength

La causa è da ricercarsi nel fatto che non avevo esplicitato /24 in coda all'indirizzo IP scelto (vedi Passo precedente).

Passo 6: Verifiche finali

Impartiamo nuovamente ip addr e dovremmo vedere l'indirizzo IP che abbiamo impostato staticamente.

Verificate ora che tutto funzioni correttamente: l'accesso ad Internet, i servizi erogati dal server eccetera.

In caso qualcosa non risponda più, provate a ripristinare la modalità di configurazione automatica e confrontare i valori ricevuti con quelli impostati manualmente.

In alternativa: "binding" fra MAC e IP sul router

In questa guida abbiamo visto come impostare staticamente l'indirizzo IP su Ubuntu Server tramite il file di configurazione utilizzato dal nuovo servizio netplan.

In alternativa, possiamo configurare il router di modo che assegni sempre lo stesso indirizzo IP al sistema, lasciando la configurazione di quest'ultimo su "automatico". Per la guida:

» Leggi: Indirizzo IP e MAC Binding: Come fare in modo che un PC della rete locale (LAN) ottenga sempre lo stesso IP locale dal modem/router