Nome del computer in Ubuntu: cosa cambia davvero
In Ubuntu il “nome del computer” non è un dettaglio cosmetico. È l’hostname che finisce in prompt, log, inventory, monitoraggio, record DHCP, talvolta in certificati, banner SSH e configurazioni applicative. Se lo cambi male, di solito non rompi il sistema operativo, ma crei incoerenze tra hostname statico, hostname transiente e file locali come /etc/hosts. Il risultato classico è un server che risponde con un nome, ne mostra un altro e continua a presentarsi in rete con quello vecchio.
Su Ubuntu 20.04, 22.04 e 24.04 il metodo corretto è quasi sempre lo stesso: usare hostnamectl, verificare la mappatura locale, poi controllare i servizi che potrebbero aver memorizzato il nome precedente. La differenza reale non è tanto tra le versioni, quanto tra installazioni minimal, server cloud e ambienti con DHCP, cloud-init o configurazioni gestite da Ansible, Puppet o strumenti simili.
Verifica prima di cambiare: stato attuale e rischio di incoerenza
Prima di modificare il nome, conviene fotografare lo stato attuale. Questo evita di inseguire problemi dopo il cambio, soprattutto se il server è raggiungibile via SSH e il nome compare in script, monitoraggio o DNS interno.
Esegui questi controlli:
hostnamectl status
hostname
cat /etc/hostname
cat /etc/hosts
resolvectl status 2>/dev/null | sed -n '1,80p'
Quello che vuoi vedere è semplice: il nome statico in hostnamectl, lo stesso valore in /etc/hostname e una riga coerente in /etc/hosts. Se questi tre punti non combaciano, il sistema può sembrare funzionante ma generare warning, ritardi o risoluzioni locali ambigue.
Su server in cloud, controlla anche se l’hostname viene imposto dall’immagine o dal metadata service. In quel caso, un cambio locale può essere sovrascritto al reboot. Il sintomo tipico è che il nuovo nome resta fino al riavvio e poi torna quello precedente.
Cambiare hostname con hostnamectl: il metodo corretto
Per Ubuntu 24.04, 22.04 e 20.04 la strada più pulita è usare hostnamectl. Funziona con systemd e aggiorna il nome statico in modo coerente.
Scegli un nome valido: niente spazi, niente underscore, meglio solo lettere minuscole, numeri e trattini. Per un host interno, una convenzione sensata è ruolo-ambiente-numero, ad esempio web-prod-01 o db-dev-02.
sudo hostnamectl set-hostname web-prod-01
Subito dopo verifica il risultato:
hostnamectl status
hostname
L’output atteso è che il nome statico e quello mostrato da hostname coincidano. Se non succede, di solito c’è un servizio esterno che lo riscrive oppure un file locale non allineato.
Allineare /etc/hostname e /etc/hosts
Su Ubuntu il cambio via hostnamectl aggiorna /etc/hostname, ma non sempre risolve il mapping locale in /etc/hosts. Ed è proprio lì che nascono molti problemi di DNS locale, warning di sudo e comportamenti strani di alcuni servizi che interrogano il nome dell’host durante l’avvio.
Controlla che /etc/hosts contenga una riga coerente con il nuovo nome, di solito associata a 127.0.1.1 sulle installazioni desktop e server standard:
127.0.0.1 localhost
127.0.1.1 web-prod-01
Se usi anche un FQDN, puoi impostare entrambi i valori nella stessa riga:
127.0.1.1 web-prod-01.example.local web-prod-01
Attenzione a non confondere il nome locale con il DNS pubblico o interno. Il file /etc/hosts serve alla risoluzione locale del sistema, non sostituisce una zona DNS ben fatta. Se il server deve essere raggiunto da altri host, il nome va comunque pubblicato nel DNS corretto.
Dopo la modifica, verifica con:
getent hosts web-prod-01
hostname -f
Il primo comando deve restituire l’indirizzo previsto; il secondo deve mostrare il nome completo se hai configurato un FQDN. Se hostname -f non risolve come ti aspetti, il problema è quasi sempre nel mapping locale o nel DNS.
Procedura passo-passo su Ubuntu 24.04, 22.04 e 20.04
Questa è la sequenza che uso quando devo cambiare il nome di un server senza perdere coerenza tra sistema e rete.
- Scegli il nuovo hostname. Usa un nome corto, leggibile e stabile. Evita nomi temporanei se poi finiranno nei log o nel monitoraggio.
- Fai un backup minimo dei file interessati. Se tocchi configurazioni di base, conserva una copia prima di modificare.
sudo cp -a /etc/hostname /etc/hostname.bak.$(date +%F-%H%M%S)
sudo cp -a /etc/hosts /etc/hosts.bak.$(date +%F-%H%M%S)
3. Imposta il nuovo nome con hostnamectl.
sudo hostnamectl set-hostname web-prod-01
4. Aggiorna /etc/hosts se necessario. Con un editor semplice puoi mantenere il file leggibile e ridurre errori di battitura.
sudo nano /etc/hosts
5. Verifica che i file siano coerenti.
cat /etc/hostname
cat /etc/hosts
hostnamectl status
hostname -f
6. Se il server usa DHCP, cloud-init o strumenti di provisioning, controlla che non ci sia una fonte esterna che ripristina il vecchio nome al boot.
Questa sequenza vale uguale per 20.04, 22.04 e 24.04. Cambia solo il contorno del sistema, non il meccanismo base dell’hostname statico.
Quando il nome torna indietro dopo il reboot
Se dopo un riavvio il sistema riprende il vecchio hostname, il problema non è il comando usato ma un componente che riscrive la configurazione. I colpevoli tipici sono cloud-init, immagini preconfigurate, script di bootstrap e alcuni pannelli di virtualizzazione.
Controlla se cloud-init gestisce l’hostname:
grep -R "preserve_hostname\|hostname" /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.d 2>/dev/null
Se trovi preserve_hostname: false, cloud-init può impostare il nome in base ai metadata del provider. In quel caso il cambio locale non basta. La soluzione corretta dipende dal provider: puoi disabilitare la gestione dell’hostname in cloud-init oppure impostare il nome dal pannello cloud, se previsto.
Su sistemi gestiti da automation, cerca anche template o snippet che scrivono /etc/hostname o chiamano hostnamectl durante il provisioning. Se esiste un playbook Ansible, un file cloud-init o uno script di bootstrap, va corretto lì, non solo sul server già avviato.
Hostname, FQDN e DNS: non sono la stessa cosa
Molti confondono hostname corto e nome completo. L’hostname corto è web-prod-01. Il FQDN è qualcosa come web-prod-01.example.local. Il primo serve come identificativo locale; il secondo è quello che dovrebbe essere coerente con DNS e, se usato, con certificati e inventory.
Se vuoi impostare un FQDN, puoi farlo con hostnamectl direttamente:
sudo hostnamectl set-hostname web-prod-01.example.local
In questo caso verifica che:
hostnamemostri il nome corto o il nome completo in base alla configurazione;hostname -frestituisca il FQDN corretto;- il DNS interno risolva il nome verso l’IP giusto;
/etc/hostsnon introduca una risposta diversa da quella attesa.
Se il server espone servizi TLS, il nome usato nei certificati deve combaciare con quello con cui i client raggiungono l’host. Cambiare hostname senza aggiornare il certificato non rompe il sistema, ma produce warning lato client e spesso anche errori applicativi.
Effetti collaterali da controllare dopo il cambio
Dopo aver rinominato il sistema, controlla almeno questi punti: prompt shell, log di sistema, SSH, applicazioni che leggono l’hostname all’avvio e monitoraggio. Non è raro che il server funzioni, ma continui a mandare eventi con il nome vecchio fino al riavvio di un servizio.
Verifiche rapide utili:
journalctl -b | grep -iE 'hostname|host name'
ssh localhost 'hostname'
systemctl --failed
Se usi agent di monitoraggio, apri il relativo servizio o il suo file di configurazione e controlla se il nome host è hardcoded. In molti casi basta un restart del servizio per farlo allineare al nuovo hostname. Esempio tipico:
sudo systemctl restart rsyslog
sudo systemctl restart prometheus-node-exporter
Non riavviare servizi a caso: fai prima un elenco di quelli che usano il nome del nodo in modo esplicito. Il blast radius di un cambio hostname è basso sul piano dati, ma può essere alto su osservabilità e automazioni se il nome è usato come chiave.
Uso da GUI: quando ha senso e quando no
Su Ubuntu Desktop il nome del computer si può cambiare anche da interfaccia grafica, nelle impostazioni del sistema. È comodo per una workstation, meno interessante per un server. Su macchine amministrate da remoto, la CLI resta preferibile perché è ripetibile, registrabile e meno ambigua.
Se usi un ambiente grafico, cerca la sezione relativa a Dettagli o Informazioni sul sistema e modifica il nome dispositivo. Dopo il cambio, conviene comunque verificare da terminale con hostnamectl e cat /etc/hostname, perché la GUI non ti dice nulla su eventuali override esterni.
Rollback semplice se qualcosa non torna
Se il nuovo nome crea problemi, il rollback è immediato: ripristina il vecchio hostname con hostnamectl e rimetti a posto /etc/hosts dai backup creati prima della modifica.
sudo hostnamectl set-hostname vecchio-nome
sudo cp -a /etc/hostname.bak.YYYY-MM-DD-HHMMSS /etc/hostname
sudo cp -a /etc/hosts.bak.YYYY-MM-DD-HHMMSS /etc/hosts
Dopo il rollback, verifica di nuovo con hostnamectl status e getent hosts. Se il problema persiste, la causa non è il comando di rename ma una sorgente di configurazione esterna che continua a riscrivere il nome.
Checklist rapida finale
Se vuoi cambiare il nome del computer in Ubuntu 24.04, 22.04 o 20.04 senza sorprese, questa è la sequenza minima da rispettare:
- leggi lo stato attuale con
hostnamectl status; - salva
/etc/hostnamee/etc/hostsprima di toccare nulla; - usa
sudo hostnamectl set-hostname nuovo-nome; - allinea
/etc/hostsse serve; - verifica
hostname,hostname -fegetent hosts; - controlla cloud-init, DHCP o automation se il nome torna indietro al reboot.
Assunzione operativa: il sistema è un host Ubuntu con systemd, accesso sudo e nessun vincolo particolare imposto da cloud-init o da un pannello esterno. Se un livello superiore gestisce l’hostname, il cambio va fatto anche lì.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.