Come cambiare il nome host su Rocky Linux e verificarne la persistenza

Per cambiare il nome host su Rocky Linux, usa sudo hostnamectl set-hostname NUOVO_NOME e verifica il risultato con hostnamectl. Il nome statico viene salvato per i riavvii successivi; i record del Domain Name System (DNS) e le associazioni in /etc/hosts richiedono invece una verifica separata se vuoi raggiungere il server con il nuovo nome.

Controllare il nome host attuale

La procedura riguarda un’installazione Rocky Linux che usa systemd e il servizio systemd-hostnamed, con un account autorizzato a usare sudo. Prima della modifica annota il nome attuale e gli eventuali nomi statico, transitorio e descrittivo diversi tra loro. Conserva anche le associazioni di rete e i riferimenti al vecchio nome nelle applicazioni: servono per verificare il risultato o tornare alla configurazione precedente.

hostnamectl
hostname
cat /etc/hostname

hostnamectl mostra il nome host e le informazioni del sistema; i campi visualizzati possono variare e un nome transitorio uguale a quello statico può non comparire separatamente. Il nome statico è la scelta persistente dell’amministratore ed è conservato in /etc/hostname; quello transitorio è un valore di ripiego, spesso ricevuto dalla configurazione di rete. Con un nome statico valido, systemd dà precedenza a quest’ultimo. La guida di Rocky Linux sui nomi host consiglia hostnamectl invece della modifica diretta del file.

Cambiare il nome con hostnamectl

Sostituisci web01.example.com con il nome che hai scelto. È un esempio, non un nome da copiare nella configurazione di produzione. Su un server gestito verifica prima i requisiti di applicazioni, monitoraggio e certificati, così da aggiornare soltanto i riferimenti che dipendono davvero dal nome.

sudo hostnamectl set-hostname web01.example.com

Il comando senza opzioni di tipo imposta insieme i nomi statico, transitorio e descrittivo (pretty). Il nome pretty serve come etichetta leggibile e può contenere spazi; non va confuso con il nome usato in rete. Per cambiare solo quello statico usa sudo hostnamectl set-hostname web01.example.com --static. La procedura di Red Hat per hostnamectl descrive i tipi di nome e le verifiche successive.

Puoi usare un nome breve, come web01, oppure un nome di dominio completo, detto FQDN (Fully Qualified Domain Name), come web01.example.com. Per il nome statico scegli lettere ASCII minuscole, cifre e trattini nei componenti, separati da punti se usi un FQDN; evita spazi, trattini iniziali o finali e nomi già assegnati. La documentazione di hostnamectl indica un limite Linux di 64 caratteri complessivi. Impostare un FQDN non registra quel dominio nel DNS: usa un dominio che amministri o che sia previsto dalla tua rete.

Verificare la modifica e il valore salvato

Dopo il comando controlla il nome attivo, le informazioni del sistema e il nome persistente. Nell’esempio, il nome statico atteso in hostnamectl e nel file è web01.example.com; gli altri campi dipendono dal server.

hostnamectl
hostname
cat /etc/hostname

Per leggere soltanto il nome statico, senza le altre informazioni:

hostnamectl --static

Se il nome salvato è corretto ma il prompt mostra ancora quello vecchio, apri una nuova sessione di accesso. I servizi che leggono il nome soltanto all’avvio possono richiedere un riavvio mirato; in alternativa pianifica il riavvio del server. Non è necessario riavviare soltanto per controllare il valore appena salvato. Mantieni disponibile l’accesso amministrativo mentre verifichi gli effetti sulle applicazioni.

Per tornare al nome precedente, ripeti sudo hostnamectl set-hostname NOME_PRECEDENTE con il valore annotato e ricontrolla gli stessi comandi. Se prima i tipi di nome avevano valori distinti, ripristinali separatamente con --static, --transient e --pretty, secondo le informazioni conservate. Eventuali modifiche a DNS, hosts o configurazioni delle applicazioni devono essere annullate separatamente.

Controllare la risoluzione del nuovo nome

Il nome del sistema e la risoluzione di un nome in un indirizzo IP sono impostazioni distinte. Dopo aver sostituito il nome di esempio, esegui la verifica sia sul server sia sui client che devono raggiungerlo. Getent consulta i servizi di risoluzione configurati nel Name Service Switch (NSS), secondo /etc/nsswitch.conf: il risultato può provenire da hosts, DNS o altre fonti, non necessariamente da una query DNS diretta.

getent hosts web01.example.com

Il risultato dovrebbe contenere l’indirizzo previsto per quel nome. Nessun risultato richiede di controllare nome, configurazione NSS, resolver e fonte dei dati; un indirizzo errato può dipendere anche da una vecchia associazione locale o dalla cache. Se gestisci la zona DNS, aggiorna i record pertinenti, per esempio A per IPv4 o AAAA per IPv6, e considera i tempi della cache. Per una sola rete locale può bastare un’associazione hosts coerente, ma essa vale soltanto sul computer in cui è presente.

Se devi modificare /etc/hosts, conserva prima una copia e cambia soltanto la riga pertinente: il formato è indirizzo IP, nome canonico ed eventuali alias. Non cancellare le voci localhost né sostituire l’intero file con una riga di esempio. Usa l’indirizzo corretto per i client interessati; assegnare il nome solo a un indirizzo di loopback non lo rende raggiungibile dagli altri computer. Il successo di getent verifica la risoluzione, non il funzionamento della connessione o del servizio applicativo.

Problemi comuni

Errore di autorizzazione o servizio non disponibile

Per una modifica negata controlla l’autorizzazione dell’account e l’uso di sudo. Se hostnamectl non riesce a contattare systemd o il bus di sistema, verifica di essere sul server Rocky avviato normalmente: un container minimale o un ambiente chroot può non offrire il servizio necessario.

Il vecchio nome ricompare dopo il riavvio

Confronta hostnamectl --static, hostname e cat /etc/hostname. Se il file contiene il nome giusto ma il comportamento continua a cambiare, identifica quale componente lo sta impostando: gestione della configurazione, metadati del provider o strumenti di inizializzazione. Se è presente cloud-init, controlla la configurazione effettiva e il comportamento della versione installata; preserve_hostname determina se può aggiornare il nome. Non disabilitare cloud-init in blocco: può gestire anche altre parti dell’istanza. Correggi la fonte della configurazione prima di ripetere modifiche manuali.

Domande frequenti

Devo riavviare dopo aver cambiato il nome host?

Puoi controllare subito il nuovo nome con hostnamectl. Per i prompt già aperti e i servizi che hanno conservato il vecchio valore possono servire una nuova sessione e riavvii mirati. Un riavvio pianificato del server è un’alternativa per riavviare insieme quei servizi.

Devo modificare sia /etc/hostname sia /etc/hosts?

Di norma imposta il nome con hostnamectl, che salva quello statico in /etc/hostname. Modifica /etc/hosts soltanto se contiene un’associazione da aggiornare o se la tua rete richiede una voce locale; non sostituisce la configurazione DNS condivisa con gli altri client.