Ubuntu 16.04 Server / Come configurare un IP statico

Su Ubuntu 16.04 Server, un indirizzo IPv4 statico (Internet Protocol version 4) gestito da ifupdown si configura in /etc/network/interfaces o in un file incluso. Verifica interfaccia, indirizzo, maschera, gateway e DNS reali, salva la configurazione e prepara una console di recupero prima di applicarla.

Verificare che la procedura sia adatta

Questa guida modifica una singola interfaccia cablata tipica in una configurazione ifupdown esistente di Ubuntu 16.04. Non aggiungere gli stessi parametri senza adattamenti su server gestiti da Netplan, NetworkManager o strumenti di inizializzazione cloud. Identifica prima gestore e origine della configurazione.

Ubuntu 16.04 è una versione vecchia. Il supporto standard è terminato nel 2021 e l’ESM ordinario (Expanded Security Maintenance, manutenzione di sicurezza estesa) nel 2026. Per continuare a usarla, verifica copertura Legacy e piano di migrazione nelle informazioni Canonical sul supporto Ubuntu 16.04. Questo non è il metodo di rete predefinito delle versioni attuali.

I nomi delle interfacce cambiano tra server. Questi comandi mostrano distribuzione, dispositivi, indirizzi IPv4 e rotta predefinita. Individua il dispositivo che trasporta realmente la connessione, senza copiare semplicemente enp0s3.

lsb_release -ds
ip -o link show
ip -4 addr show
ip -4 route
cat /etc/network/interfaces
dpkg -l ifupdown resolvconf

In ip -4 route, default via indica il gateway e dev l’interfaccia. Confronta questi dati con i file e verifica i pacchetti mediante dpkg -l. Se manca il file o il gestore è diverso, fermati e usa la procedura di quell’ambiente.

Scegliere indirizzo, gateway e DNS

Un IP statico non si sceglie arbitrariamente sul server. Usa l’indirizzo assegnato dall’amministratore e verifica prenotazioni o esclusioni DHCP (Dynamic Host Configuration Protocol, protocollo di configurazione dinamica degli host) per evitare l’intervallo distribuito. Un indirizzo senza risposta non è necessariamente libero.

  • Indirizzo e maschera: l’esempio usa 192.168.10.50 e 255.255.255.0, equivalenti a 192.168.10.50/24. Non assegnare a un host l’indirizzo di rete 192.168.10.0 né quello broadcast 192.168.10.255 di questa sottorete.
  • Gateway: l’esempio è 192.168.10.1, raggiungibile direttamente sulla stessa rete. Questo caso con una sola interfaccia usa un’unica rotta predefinita. Più reti o politiche di routing richiedono una progettazione separata.
  • DNS: scegli un server DNS (Domain Name System, sistema dei nomi di dominio) che risolva i nomi in indirizzi. 192.168.10.1 va bene soltanto se quel dispositivo risponde anche alle richieste DNS. Per domini interni, usa il DNS dell’organizzazione capace di risolverli.

I valori descrivono una rete privata di esempio. Adattali alla modalità NAT, bridge o solo host della macchina virtuale e alle regole cloud di assegnazione. Fissare l’IP privato del guest può essere diverso dal riservare un IP pubblico esterno.

Salvare la configurazione e passare da DHCP a static

  1. Verifica prima l’accesso alla console fisica, di virtualizzazione o di recupero cloud. Cambiare indirizzo avendo solo SSH (Secure Shell) può impedire il recupero dopo la disconnessione. Pianifica l’interruzione e annota vecchi indirizzi, rotte e DNS.
  2. Salva la configurazione di rete in una posizione separata. Se il nome del backup esiste già, scegline un altro.
sudo cp -a /etc/network /etc/network.before-static-ip
sudoedit /etc/network/interfaces

Controlla i file inclusi con source o source-directory. Se l’interfaccia è definita in /etc/network/interfaces.d/, modifica quel file senza duplicarla nel principale. Per file generati dal cloud, verifica sovrascrittura all’avvio e metodo supportato dal fornitore.

  1. Trova il blocco DHCP seguente. Modifica il blocco IPv4 esistente dell’interfaccia reale, senza creare un nome diverso di dispositivo.
auto enp0s3
iface enp0s3 inet dhcp
  1. Sostituisci soltanto quel blocco come indicato. Conserva altre interfacce, IPv6, inclusioni e configurazione loopback.
auto enp0s3
iface enp0s3 inet static
    address 192.168.10.50
    netmask 255.255.255.0
    gateway 192.168.10.1
    dns-nameservers 192.168.10.1

Il blocco non sostituisce l’intero file. Conserva voci come auto lo e iface lo inet loopback. auto indica le interfacce attivate all’avvio; inet static seleziona IPv4 statico. Vedi la sintassi nel manuale interfaces di ifupdown.

Capire quando dns-nameservers viene applicato

dns-nameservers ha un ruolo diverso da indirizzo IP e rotta predefinita. Su Ubuntu 16.04 devono funzionare resolvconf e gli script di integrazione ifupdown per trasmettere il valore alla configurazione DNS. Il manuale resolvconf di Ubuntu 16.04 spiega l’integrazione e più indirizzi DNS separati da spazi.

Se /etc/resolv.conf è generato automaticamente, modifiche dirette possono essere sovrascritte. Verifica destinazione e contenuto con questi comandi; se resolvconf è disponibile, visualizza anche i dati DNS registrati.

readlink -f /etc/resolv.conf
cat /etc/resolv.conf
if command -v resolvconf >/dev/null 2>&1; then
    resolvconf -l
fi

Senza installazione o integrazione, la sola riga dns-nameservers non cambia il DNS. Identifica e adatta prima il gestore effettivo. Alcune configurazioni mostrano una cache DNS locale in resolv.conf; non vedere direttamente un indirizzo esterno non dimostra un errore.

Applicare la configurazione e verificare il risultato

  1. Dopo il salvataggio, controlla i parametri letti da ifupdown. Nome, indirizzo, maschera e gateway devono corrispondere al piano. Questo comando consulta la configurazione senza applicarla alla rete.
ifquery enp0s3

Il successo di ifquery non verifica conflitti IP né comunicazione reale. Se segnala errori o interfaccia non definita, correggi prima inclusioni, nome e sintassi. L’ambito è descritto nel manuale ifquery e ifup di ifupdown.

  1. Con console di recupero e interruzione pianificata, riavvia per applicare la configurazione di avvio. Il comando seguente riavvia l’intero server: eseguilo solo quando sei pronto.
sudo reboot

Riavviare soltanto il servizio di rete non garantisce di rimuovere vecchi indirizzi e stato DHCP. Ripetere i riavvii perché l’IP non cambia non corregge gli errori. Dopo l’avvio, verifica indirizzi e rotte dalla console e riconnettiti al nuovo IP.

ip -4 addr show dev enp0s3
ip -4 route
ping -c 3 192.168.10.1
getent ahostsv4 ubuntu.com

Nell’esempio, l’interfaccia dovrebbe mostrare 192.168.10.50/24 e la rotta includere default via 192.168.10.1 dev enp0s3. Verifica separatamente gateway e risoluzione dei nomi. Se le risposte ICMP sono bloccate, un ping fallito non prova un guasto: testa i servizi necessari e l’accesso da un altro client.

Diagnosticare errori e ripristinare la configurazione

Senza indirizzo, verifica dispositivo, percorso del file, gestore e sintassi. Con indirizzo ma senza accesso ad altre reti, controlla maschera, gateway e rotte. Se gli IP funzionano ma i nomi no, controlla DNS e domini interni. Indirizzi errati, assegnazioni DHCP sovrapposte e definizioni duplicate possono causare problemi.

Consulta gli errori con sudo systemctl status networking.service e sudo journalctl -u networking.service -b --no-pager. Un servizio sano non garantisce indirizzi o comunicazioni corretti: confronta le verifiche precedenti.

Per ripristinare, usa la console di recupero e ripristina solo i file modificati. L’esempio presume che sia cambiato soltanto /etc/network/interfaces. Per un frammento, rimetti il backup corrispondente al posto giusto. Non copiare indietro l’intera directory sovrascrivendo modifiche estranee aggiunte nel frattempo.

sudo cp -a /etc/network.before-static-ip/interfaces /etc/network/interfaces
sudo reboot

Se prima si usava DHCP, non è garantito lo stesso indirizzo dopo il riavvio. Verifica indirizzo assegnato e rotta dalla console, poi conferma DNS e accesso amministrativo prima di terminare.