Come configurare ntpd su Ubuntu: sincronizzazione temporale affidabile per sistemi stabili

1. Introduzione: Perché la sincronizzazione dell’ora è importante

Problemi causati dal drift dell’ora di sistema

Su sistemi Linux come Ubuntu, mantenere un orario di sistema accurato è di importanza critica. A prima vista, una piccola discrepanza dell’orologio può sembrare banale, ma nelle operazioni di server e negli ambienti applicativi, anche un lieve drift temporale può provocare problemi seri.

Ad esempio, i seguenti problemi possono verificarsi:

  • Perdita di coerenza nei log Se i timestamp nei log di sistema o delle applicazioni sono disallineati, diventa difficile identificare la causa radice degli incidenti.
  • Malfunzionamento dei job cron Attività programmate come backup o job batch potrebbero non essere eseguite al momento corretto, causando comportamenti inattesi.
  • Errori di certificati SSL e di autenticazione Le comunicazioni HTTPS e l’autenticazione SSH si basano su un orario di sistema preciso. Se l’orologio è errato, i certificati possono essere considerati “scaduti” o “non ancora validi”, generando errori di connessione.

Queste problematiche diventano particolarmente gravi quando più server devono essere sincronizzati attraverso una rete.

Il ruolo e l’importanza di NTP

Per prevenire tali problemi, si utilizza NTP (Network Time Protocol). NTP comunica con server di tempo su Internet o su una rete locale e corregge automaticamente l’orologio di sistema.

Su Ubuntu sono disponibili diversi strumenti legati a NTP, tra cui ntpd, chrony e systemd-timesyncd. In questo articolo ci concentreremo su ntpd (demone Network Time Protocol) e spiegheremo in dettaglio come installarlo e usarlo su Ubuntu.

Per i server che operano continuamente per lunghi periodi o per i sistemi in cui la coerenza dei log è essenziale, ntpd è molto apprezzato per la sua stabilità.

Nella sezione successiva inizieremo spiegando cos’è ntpd, il suo ruolo fondamentale e le opzioni disponibili su Ubuntu.

2. Cos’è ntpd? Il suo ruolo e le alternative su Ubuntu

Panoramica e funzionalità di ntpd

ntpd (Network Time Protocol Daemon) è un servizio in background che mantiene l’ora di sistema accurata usando NTP. Comunica periodicamente con server NTP su Internet o sulla rete locale e regola automaticamente l’orologio di sistema.

Una caratteristica chiave di ntpd è la capacità di effettuare una “sincronizzazione fluida”, correggendo gradualmente il drift temporale anziché apportare cambiamenti bruschi. Questo design evita impatti negativi sui sistemi e sulle applicazioni in esecuzione.

ntpd supporta anche funzionalità avanzate di NTP come la comunicazione simmetrica e l’autenticazione, rendendolo adatto a contesti aziendali.

Strumenti di sincronizzazione dell’ora disponibili su Ubuntu

Ubuntu offre diverse opzioni per la sincronizzazione dell’ora:

  • ntpd (pacchetto ntp) Ampiamente usato in operazioni a lungo termine e in ambienti che richiedono configurazioni dettagliate. Offre grande flessibilità e stabilità e può sincronizzarsi con precisione con server NTP pubblici.
  • chrony Un’alternativa moderna a ntpd, con alta precisione e sincronizzazione iniziale molto rapida. Funziona bene su sistemi a bassa specifica e macchine virtuali, ed è ora predefinita in molte distribuzioni.
  • systemd-timesyncd Un servizio di sincronizzazione dell’ora leggero, abilitato per impostazione predefinita su Ubuntu 20.04 e versioni successive. È semplice e comodo, ma limitato nelle funzionalità e non adatto a configurazioni avanzate o a gestire un server NTP locale.

Perché scegliere ntpd?

Il motivo principale per scegliere ntpd su Ubuntu è la sua affidabilità e stabilità. È particolarmente indicato nei seguenti scenari:

  • Server che operano continuamente per lunghi periodi, dove la precisione temporale è critica
  • Ambienti che richiedono la creazione di un server NTP locale all’interno di una rete
  • Casi d’uso aziendali che necessitano di autenticazione e controllo fine‑grained

Poiché ntpd ha una lunga storia operativa e una vasta compatibilità, offre tranquillità durante il deployment.

3. Installazione e configurazione iniziale di ntpd su Ubuntu

Installazione di ntpd

Per utilizzare ntpd su Ubuntu, è necessario prima installare il pacchetto ntp. Questo può essere fatto facilmente con i seguenti comandi:

.“` sudo apt update sudo apt install ntp

Questo installa `ntpd` e i relativi file. A seconda della versione di Ubuntu, `chrony` o `systemd-timesyncd` potrebbero essere abilitati per impostazione predefinita. In tali casi, è consigliato **disabilitarli o rimuoverli in anticipo**.

sudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd

### Abilitare il servizio e verificare l'avvio



Dopo l'installazione, abilita il servizio ntpd e verifica che sia in esecuzione:

sudo systemctl enable ntp sudo systemctl start ntp sudo systemctl status ntp

Se lo stato mostra `active (running)`, ntpd sta funzionando correttamente.



### Controllare e modificare il file di configurazione iniziale



La configurazione di ntpd è definita in `/etc/ntp.conf`. Per impostazione predefinita, sono configurati diversi server NTP (solitamente dalla rete pool.ntp.org).



Per prima cosa, esamina il file di configurazione:

cat /etc/ntp.conf

Se desideri specificare server situati in Giappone, puoi modificare la configurazione come segue:

server ntp.nict.jp iburst

L'opzione `iburst` migliora la velocità di sincronizzazione durante la connessione iniziale ed è consigliata.



Dopo aver apportato le modifiche, riavvia ntpd per applicarle:

sudo systemctl restart ntp

### Verificare la sincronizzazione automatica dell'ora



ntpd sincronizza automaticamente l'ora dopo l'avvio. Per verificare il corretto funzionamento, usa il seguente comando:

ntpq -p

Questo comando mostra un elenco dei server NTP connessi insieme a ritardo, offset e altre informazioni dettagliate.



## 4. Configurare e personalizzare i server NTP



### Selezionare i server NTP consigliati



Uno degli aspetti più importanti nella configurazione di ntpd è la scelta dei server NTP con cui sincronizzarsi. Quando ci si connette a Internet, specificare server NTP affidabili e geograficamente vicini — come i server nazionali — può garantire una sincronizzazione dell'ora più stabile e precisa.



I server NTP rappresentativi in Giappone includono:



* `ntp.nict.jp` (Istituto Nazionale di Informatica e Comunicazioni)
* `ntp.jst.mfeed.ad.jp` (JST / Mfeed)
* `ntp.ring.gr.jp` (Internet Multi Feed)



Questi server sono gestiti con orologi atomici ad alta precisione e possono essere utilizzati per scopi personali senza registrazione speciale.



Puoi configurare la sincronizzazione con questi server aggiungendo le seguenti voci a `/etc/ntp.conf`:

server ntp.nict.jp iburst server ntp.jst.mfeed.ad.jp iburst server ntp.ring.gr.jp iburst

### Opzioni di configurazione dettagliate in ntp.conf



Il file `/etc/ntp.conf` consente un controllo più fine rispetto alla semplice specifica dei server NTP. Di seguito alcune direttive comunemente usate.



* **directive restrict**  Controlla quali client sono autorizzati o limitati nell'accesso al servizio NTP. Per motivi di sicurezza, l'accesso non necessario dovrebbe essere limitato. Esempio: consentire l'accesso da una rete locale.

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

* **driftfile**  Specifica il file usato per registrare la deriva dell'orologio di sistema. Nella maggior parte dei casi, l'impostazione predefinita è sufficiente.

driftfile /var/lib/ntp/ntp.drift






### Creare un server NTP locale all'interno di una rete



Utilizzando ntpd su Ubuntu, è possibile far funzionare il sistema come **server NTP locale che distribuisce l'ora ad altri dispositivi su una rete interna**. Questa configurazione è utile in ambienti senza accesso a Internet o dove è necessaria una gestione coerente dell'ora su più sistemi.



Una procedura di configurazione di esempio è la seguente:



1. Aggiungi una regola `restrict` a `/etc/ntp.conf` per consentire l'accesso locale: `restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap`
2. Configura i PC client per fare riferimento al server NTP locale: `server 192.168.0.10 iburst # IP locale del server NTP`
3. Consenti la porta NTP sul server (permessi per la porta UDP 123 nel firewall): `sudo ufw allow 123/udp`



Se la comunicazione è bloccata, la sincronizzazione dell'ora fallirà e il comando ntpq non mostrerà una connessione al server.

.## 5. Verificare il funzionamento e risolvere i problemi di ntpd



### Controllo dello stato del servizio



Per confermare se ntpd è in esecuzione correttamente, usa il seguente comando:

sudo systemctl status ntp

Se viene visualizzato `active (running)`, ntpd sta funzionando normalmente. Se lo stato è `inactive` o `failed`, un errore di configurazione o un problema di dipendenza potrebbe impedire l'avvio.



Per i log dettagliati, il comando seguente è utile:

journalctl -u ntp

Questo ti permette di esaminare la cronologia di avvio e i messaggi di errore del servizio ntpd in ordine cronologico.



### Controllo dello stato di sincronizzazione (ntpq -p)



Il comando `ntpq -p` è il più comunemente usato per verificare se ntpd si sta sincronizzando correttamente con i server NTP.

ntpq -p

Esempio di output:
 remote           refid      st t when poll reach   delay   offset  jitter

============================================================================== *ntp.nict.jp .NICT. 1 u 25 64 377 1.123 -0.345 0.024

Il significato di ciascuna colonna è il seguente:



* `remote` : Nome del server NTP connesso  
* `st` : Strato del server (valori più bassi sono più precisi; 1 indica un riferimento a orologio atomico)  
* `reach` : Registro di raggiungibilità (cronologia a 8 bit)  
* `delay` : Ritardo di rete (ms)  
* `offset` : Scostamento temporale (ms)  
* `jitter` : Variazione dello scostamento  



Un server contrassegnato con `*` è attualmente selezionato come fonte di sincronizzazione.



### Errori comuni e come risolverli



Di seguito sono riportati i problemi comuni riscontrati durante il deployment di ntpd e le relative soluzioni.



#### 1. **Nessun output da `ntpq -p` / reach rimane 0**



* **Causa** : La porta UDP 123 potrebbe essere bloccata da un firewall o router  
* **Soluzione** : Verifica le impostazioni del firewall sia sul server che sul client per assicurarti che il traffico NTP sia consentito.

sudo ufw allow 123/udp

#### 2. **Viene visualizzato `System clock not synchronized`**



* **Causa** : ntpd non è in esecuzione, o un altro servizio di sincronizzazione (come systemd-timesyncd) è in conflitto  
* **Soluzione** : Disabilita i servizi di sincronizzazione temporale non necessari e riavvia ntpd.

sudo systemctl disable systemd-timesyncd sudo systemctl restart ntp

#### 3. **Impossibile risolvere i nomi dei server NTP**



* **Causa** : Problemi di configurazione DNS o problemi di rete  
* **Soluzione** : Verifica la risoluzione dei nomi usando comandi come `ping ntp.nict.jp` e regola le impostazioni DNS se necessario.



#### 4. **L'ora è notevolmente sbagliata e non si sincronizza**



* **Causa** : Per motivi di sicurezza, ntpd non corregge automaticamente offset temporali molto grandi  
* **Soluzione** : Correggi manualmente l'ora iniziale, poi riavvia ntpd.

sudo ntpd -gq # Perform a one-time immediate synchronization sudo systemctl restart ntp

### Per il monitoraggio continuo



In ambienti di produzione, è consigliato registrare periodicamente l'output di `ntpq -p` e impostare avvisi per anomalie. Rilevare segnali come log mancanti o un valore `reach` costantemente bloccato a 0 consente di identificare precocemente i guasti.



## 6. Confronto tra ntpd e altri strumenti di sincronizzazione temporale



### Principali strumenti di sincronizzazione temporale su Ubuntu



Ubuntu offre diversi strumenti per la sincronizzazione temporale, ognuno con caratteristiche distinte. Scegliere lo strumento giusto dipende dai requisiti del tuo sistema e dal caso d'uso.



* **ntpd (ntp package)**
* **chrony**
* **systemd-timesyncd**



### Caratteristiche di ntpd



* **Vantaggi**
  * Stabilità e affidabilità comprovate, supportate da una lunga storia operativa
  * Set di funzionalità ricco con opzioni di configurazione granulari (server NTP locali, autenticazione, modalità simmetrica)
  * Elevata compatibilità con server NTP pubblici e ampie risorse di risoluzione dei problemi
* **Svantaggi**
  * La sincronizzazione iniziale dopo l'avvio può essere lenta
  * Meno adattabile a ambienti moderni come la virtualizzazione e reti altamente variabili



### Caratteristiche di chrony

.* **Vantaggi**
* Sincronizzazione iniziale molto veloce, anche subito dopo l'avvio
* Alta precisione in ambienti virtualizzati o con rete variabile (laptop, VPN)
* L'apprendimento adattivo migliora la precisione nel tempo, a volte superando ntpd
* **Svantaggi**
* Configurazione leggermente più complessa quando usato come server NTP locale
* Meno documentazione e meno esempi reali rispetto a ntpd



### Caratteristiche di systemd-timesyncd



* **Vantaggi**
* Abilitato per impostazione predefinita su Ubuntu 20.04 e successive, estremamente facile da gestire
* Consumo di risorse minimo con funzionalità di sincronizzazione di base
* Ben integrato con systemd e adatto per configurazioni standard di Ubuntu
* **Svantaggi**
* Funzionalità limitate; configurazione avanzata e operazione come server NTP locale non sono supportate
* Precisione e capacità di logging sono di base, rendendolo inadatto per sistemi su larga scala



### Tabella di Confronto


Featurentpdchronysystemd-timesyncd
AccuracyHighVery HighModerate
Initial Sync SpeedSometimes SlowVery FastModerate
Local NTP ServerExcellentGood (More Complex)Not Supported
Configuration FlexibilityHighMediumLow
Virtual Environment SupportLimitedExcellentGood
Operational History & ResourcesExcellentGoodLimited
Recommended Use CasesServers, Organization-wide SyncVirtual Environments, LaptopsSingle PCs, Beginners
### Strumenti Consigliati per Caso d'Uso * **Ambienti server (soprattutto sistemi sempre attivi)** → **ntpd** o **chrony** per stabilità e precisione. * **Ambienti cloud, macchine virtuali, laptop** → **chrony** offre la massima flessibilità e precisione. * **PC singoli con esigenze di sincronizzazione di base** → **systemd-timesyncd** è sufficiente. ## 7. Domande Frequenti (FAQ) ### Q1. ntpd è installato per impostazione predefinita su Ubuntu 22.04? **A1.** No. Su Ubuntu 22.04, `ntpd` non è installato per impostazione predefinita. Invece, `systemd-timesyncd` è abilitato per la sincronizzazione di base dell'ora. Per usare `ntpd`, è necessario installare esplicitamente il pacchetto `ntp`.

sudo apt install ntp

Dopo l'installazione, disabilitare `systemd-timesyncd` aiuta a evitare conflitti.



### Q2. Perché `ntpq -p` non mostra alcun risultato?



**A2.**  
Sono possibili diverse cause:



* **Il servizio non è in esecuzione** : Controlla con `sudo systemctl status ntp` e avvialo se necessario
* **Nessuna comunicazione con i server NTP** : Assicurati che la porta UDP 123 non sia bloccata da un firewall
* **Errori di configurazione** : Verifica che `/etc/ntp.conf` non contenga errori



Inizia eseguendo il seguente comando per verificare il funzionamento di base:

ntpq -p

Se l'output è vuoto o `reach` rimane `0`, è probabile che la comunicazione con i server esterni stia fallendo.



### Q3. Devo scegliere ntpd o chrony?



**A3.**  
La scelta ottimale dipende dal tuo ambiente:



* **Server fisici a lungo termine o configurazioni di server NTP locali** → si consiglia `ntpd` per la stabilità
* **Ambienti virtuali, laptop o reti variabili (Wi‑Fi)** → `chrony` offre migliore precisione e sincronizzazione più rapida
* **Solo sincronizzazione oraria semplice** → `systemd-timesyncd` è sufficiente



### Q4. Cosa fa il comando `ntpd -gq`?



**A4.**  
`ntpd -gq` esegue una sincronizzazione una tantum con un server NTP e poi termina.



* `-g` : Consente la correzione anche se lo scostamento temporale è grande
* `-q` : Sincronizza una volta e termina (non viene eseguito come demone)



Questo comando è utile quando l'ora di sistema è significativamente errata e il normale funzionamento di ntpd non la correggerebbe automaticamente.



### Q5. C'è un vantaggio nel specificare più server NTP?



**A5.**  
Sì. Specificare più server NTP migliora la ridondanza e l'affidabilità. Se un server diventa non disponibile, il sistema può continuare a sincronizzarsi con gli altri.



Esempio di configurazione in `/etc/ntp.conf`:

server ntp.nict.jp iburst server ntp.jst.mfeed.ad.jp iburst server ntp.ring.gr.jp iburst “`

8. Conclusione: Migliorare l’Affidabilità del Sistema Attraverso una Sincronizzazione Oraria Stabile

Riconsiderare il Valore di ntpd

Su sistemi Ubuntu, una sincronizzazione oraria accurata non è solo una comodità—influisce direttamente su sicurezza, risoluzione dei problemi, gestione dei log e correttezza dei processi automatizzati.

Questo articolo ha fornito una panoramica completa dei fondamenti di NTP, di come funziona la sincronizzazione del tempo con ntpd, dei passaggi di installazione e configurazione, delle opzioni di personalizzazione, dei metodi di verifica e risoluzione dei problemi, e dei confronti con strumenti alternativi.

Consigli per i Lettori

La scelta dello strumento di sincronizzazione del tempo su Ubuntu dipende dallo scopo del sistema, dall’architettura e dai requisiti di disponibilità.
Tuttavia, il principio rimane universale: senza un tempo accurato, un’operazione stabile del sistema è impossibile.

  • Ambienti server e sistemi intensivi di log → Configura attentamente ntpd o chrony
  • Sistemi singoli con requisiti semplici → Usa systemd-timesyncd per una configurazione rapida

Sebbene i problemi di sincronizzazione del tempo siano spesso non notati nelle operazioni quotidiane, diventano un differenziatore critico durante la risoluzione di incidenti.

Usa questa guida per costruire una configurazione di sincronizzazione del tempo che si adatti meglio al tuo ambiente Ubuntu.