Come configurare hostname e FQDN del server
Livello: Principiante
Tempo stimato: circa 15 minuti
Obiettivo: Configurare un hostname persistente del server e definire un Fully Qualified Domain Name (FQDN) per una corretta identificazione del sistema e per la risoluzione DNS locale.
Introduzione
Un hostname è l'etichetta assegnata a un dispositivo in rete, mentre un Fully Qualified Domain Name (FQDN) comprende sia l'hostname sia il dominio a cui appartiene (ad es. web-server-01.example.com). Configurarli correttamente è fondamentale per servizi come i mail server (Postfix, Exim), per il coordinamento della rete interna e per identificare i server nel prompt del terminale in una flotta di grandi dimensioni.
In questa guida definirai un hostname persistente tramite gli strumenti di systemd e imposterai una risoluzione locale dell'FQDN.
Nota sui tipi di FQDN:
- FQDN pubblico: impostato tramite il DNS pubblico (ad es. Cloudflare, Route53). È il modo in cui il resto del mondo raggiunge il tuo server.
- FQDN locale: il nome con cui il server si identifica e si risolve internamente. Idealmente i due dovrebbero coincidere, ma è la configurazione locale a garantire la stabilità del sistema.
Prerequisiti
Prima di iniziare, assicurati di avere:
- Sistema operativo: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12 oppure RHEL/CentOS/AlmaLinux 8/9.
- Accesso: un utente con privilegi
sudo. - Conoscenze richieste: utilizzo di base del terminale Linux e degli editor di testo (come
nanoovim).
Passaggio 1: Verificare la configurazione attuale
Per prima cosa, controlla quale nome il server ritiene di avere al momento.
Esegui il comando di stato:
hostnamectl status
Output atteso (o simile):
Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: abc123def456 Boot ID: 123abc456def Virtualization: kvm Operating System: Ubuntu 24.04 LTS Kernel: Linux 6.8.0-31-generic Architecture: x86-64
Quindi verifica se l'FQDN viene risolto correttamente:
hostname -f
Se il sistema restituisce una riga vuota, esattamente localhost oppure un errore che indica che l'host non può essere risolto, l'FQDN non è configurato correttamente.
Passaggio 2: Impostare il nuovo hostname (configurazione dell'hostname su un server Linux)
Nella maggior parte delle distribuzioni, hostnamectl è il metodo corretto per impostare l'hostname sulle istanze server e mantenere la modifica in modo persistente. Questa parte della guida tratta la configurazione pratica dell'hostname in Linux per i deployment più comuni, compresa la procedura abituale su Ubuntu e Debian senza modificare manualmente /etc/hostname.
Esegui il comando seguente, sostituendo <YOUR_HOSTNAME> con il nome breve desiderato (ad es. web-01):
sudo hostnamectl set-hostname <YOUR_HOSTNAME>
Sebbene Linux consenta tecnicamente i punti nell'hostname, si consiglia di usare solo lettere minuscole, cifre e trattini. L'uso di punti nel nome breve (ad es. web.01) può creare confusione con l'FQDN e in genere viene evitato.
Il comando aggiorna immediatamente il sistema. Potresti notare che il prompt del terminale corrente (di solito user@old-hostname:~$) non cambia subito. Esci e rientra, oppure apri una nuova sessione bash digitando bash, per vedere il prompt aggiornato con il nuovo nome.
Passaggio 3: Aggiornare /etc/hosts per la risoluzione dell'FQDN
Questo passaggio associa l'hostname locale a un FQDN e a un dominio, in modo che la risoluzione dei nomi funzioni in modo prevedibile. In pratica, è la parte della configurazione dell'hostname del server che definisce l'identità di rete locale della macchina e completa la configurazione dell'identità di rete in Linux utilizzata da molti servizi.
Associare l'FQDN all'indirizzo di loopback 127.0.1.1 è lo schema più sicuro per la produzione (soprattutto su Debian/Ubuntu). In questo modo il nome viene risolto anche se la rete non è disponibile o se cambia l'IP pubblico.
Apri il file hosts:
sudo nano /etc/hosts
Vedrai un contenuto simile al seguente:
127.0.0.1 localhost 127.0.1.1 old-hostname
Non rimuovere la riga 127.0.0.1 localhost. Modifica invece la riga 127.0.1.1 (oppure aggiungila) in modo che includa l'FQDN seguito dall'hostname breve.
Aggiorna il file seguendo questo schema:
127.0.0.1 localhost 127.0.1.1 <YOUR_FQDN> <YOUR_HOSTNAME>
Esempio con FQDN web-01.example.com e hostname web-01:
127.0.0.1 localhost 127.0.1.1 web-01.example.com web-01
Evita di usare IP pubblici in /etc/hosts, a meno che non sia espressamente necessario. Se l'indirizzo IP cambia (frequente negli ambienti cloud) e dimentichi di aggiornare questo file, la risoluzione dell'hostname smetterà di funzionare.
Salva il file ed esci (in nano premi Ctrl+O, Invio, poi Ctrl+X).
Passaggio 4: Verificare le modifiche
Ora assicurati che il sistema registri correttamente l'FQDN.
Controlla l'FQDN attivo:
hostname -f
Output atteso:
web-01.example.com
Controlla l'hostname breve attivo:
hostname -s
Output atteso:
web-01
Infine, esegui un ping all'FQDN per verificare che venga risolto correttamente nell'indirizzo IP indicato nel file hosts:
ping -c 3 <YOUR_FQDN>
Completati questi passaggi, il server è in grado di identificare e risolvere correttamente il proprio nome di rete.
Nota su cloud-init per la configurazione dell'hostname su VPS
Sulle istanze VPS cloud come AWS, GCP e DigitalOcean, cloud-init può sovrascrivere le modifiche all'hostname al riavvio. Se dopo il riavvio ricompare il valore precedente, controlla /etc/cloud/cloud.cfg e imposta preserve_hostname: true, in modo che il VPS mantenga l'hostname desiderato e le relative impostazioni di dominio.
Risoluzione dei problemi
Se l'hostname non persiste dopo il riavvio, verifica innanzitutto che hostnamectl status mostri il valore statico atteso, quindi controlla se cloud-init sta ripristinando un'impostazione precedente. Se hostname -f non restituisce l'FQDN atteso, controlla la voce 127.0.1.1 in /etc/hosts e verifica che l'hostname breve compaia dopo l'FQDN. Se i servizi continuano a riportare un nome errato, verifica che il dominio del server, l'ordine di risoluzione in /etc/nsswitch.conf e gli eventuali metadati del provider corrispondano alla configurazione prevista.
Ripristino (rollback)
Se hai configurato i nomi in modo errato e devi riportare il server allo stato predefinito:
Reimposta l'hostname breve:
sudo hostnamectl set-hostname localhost
Ripristina il file /etc/hosts rimuovendo la riga IP personalizzata. Assicurati che il loopback locale appaia così:
sudo nano /etc/hosts
127.0.0.1 localhost 127.0.1.1 localhost
Conclusione
Hai definito con successo un hostname persistente e configurato la rete locale per ottenere un FQDN corretto. Farlo nel modo giusto crea il livello base di identità necessario per i servizi web, le configurazioni di posta e gli strumenti di orchestrazione remota.
Versione del documento: 1.0
Ultimo aggiornamento: aprile 2026
Responsabile: Team di documentazione tecnica