Guida verificata con Ubuntu: 20.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa pagina fornisce informazioni utili riguardo al modo attraverso in cui Ubuntu gestisce l'orario impostando la sincronizzazione tramite il protocollo NTP (Network Time Protocol).
Installazione
Installare il pacchetto ntp.
Cambiare il fuso orario
Per cambiare il fuso orario:
Accedere al centro di controllo, Data e ora.
Ubuntu 20.04 LTS:
Fare clic sul fuso orario attualmente impostato per fare apparire la mappa di selezione.
Fare clic nella mappa sulla città più vicina, oppure cercare la città sul campo di ricerca.
Fare clic su Chiudi.
In alternativa è possibile compiere la medesima operazione tramite terminale, digitare il seguente comando:
sudo dpkg-reconfigure tzdata
Sincronizzare il tempo con NTP
Questa sezione descrive i metodi per mantenere l'ora esatta del proprio computer, utile per i server, ma non necessario (o desiderabile) per computer desktop.
NTP è un protocollo TCP/IP per sincronizzare l'ora attraverso la rete: un client richiede l'ora corrente a un server e usa questa per impostare il proprio orologio.
Oltre questa semplice descrizione, c'è molta complessità. Esistono diversi livelli di server NTP, con i server di primo livello collegati a orologi atomici (solitamente via GPS) e i server dei livelli due e tre che dividono il carico delle richieste attraverso Internet. Inoltre, il software dei client è molto più complesso di quanto si possa immaginare: deve gestire i ritardi nella comunicazione e regolare l'ora in modo da non compromettere tutti i processi in esecuzione sul server. Fortunatamente tutta quella complessità è nascosta all'utente.
Per sincronizzare il tempo attraverso il protocollo NTP:
Accedere al centro di controllo, Data e ora.
Ubuntu 20.04 LTS:
Attivare opzione Data e ora automatiche.
Fare clic su Chiudi.
Ubuntu 18.04 LTS e precedenti:
Nella sezione Configurazione, selezionare l'opzione Mantenere sincronizzato con i server Internet.
Fare clic su Chiudi.
- In alternativa:
Con i privilegi di amministrazione e un editor di testo, creare un file chiamato /etc/cron.daily/ntpdate con il seguente contenuto:
ntpdate -s ntp.ubuntu.com
Assicurarsi che il file ha i permessi di esecuzione, digitare in terminale il seguente comando:
sudo chmod 755 /etc/cron.daily/ntpdate
Ubuntu dispone di ntpdate e viene eseguito all'avvio per configurare l'orologio in base al server NTP di Ubuntu. L'orologio di un server potrebbe comunque cambiare tra un riavvio e l'altro, anche di un fattore considerevole, ed è pertanto consigliato occasionalmente regolare l'ora manualmente. Il metodo più semplice per fare questo è quello di indicare a cron di eseguire ntpdate ogni giorno.
Modifica dei server NTP
In via predefinita, il sistema utilizzerà i server NTP di Ubuntu ntp.ubuntu.com. Si potrebbe volere utilizzare un server geograficamente più vicino al fine di migliorare la precisione.
In Italia server NTP vengono offerti dall'Istituto Nazionale di Ricerca Metrologica (INRIM) ai seguenti indirizzi: ntp1.inrim.it e ntp2.inrim.it. Si consiglia di aggiungere il seguente it.pool.ntp.org per i motivi specificati nel proseguo di questa guida.
Per modificare il server NTP:
Accedere al centro di controllo, Data e ora.
Ubuntu 18.04 LTS e precedenti:
Fare clic su Seleziona server.
Fare clic sulla casella di fianco al server oppure aggiungerne manualmente inserendoli nella casella posta di fianco ad Aggiungi.
Fare clic su Chiudi.
In alternativa, tramite terminale, con i privilegi di amministrazione e un editor di testo:
Modificare il file /etc/cron.daily/ntpdate nel modo seguente:
ntpdate ntp.ubuntu.com pool.ntp.org
Modificare il file /etc/ntp.conf nel modo seguente:
server ntp.ubuntu.com server pool.ntp.org
Si noti l'indirizzo pool.ntp.org negli esempi precedenti. Questo indirizzo utilizza un DNS round-robin per restituire un server NTP da un pool di server in modo da distribuire il carico tra più server.
Ancora meglio sarebbe utilizzare un pool specifico per una determinata zona geografica. Ad esempio, in Italia si potrebbe utilizzare it.pool.ntp.org invece di pool.ntp.org.
Verificare server NTP
Per verificare il funzionamento di un server NTP:
Digitare in terminale il seguente comando:
sudo ntpdate ntp.server.name
Qualora funzioni, restituirà un output simile al seguente
1 Feb 15:06:56 ntpdate[3799]: the NTP socket is in use, exiting
Problematiche dei sistemi dual boot
I sistemi operativi memorizzano e recuperano il tempo dall'orologio hardware posto sulla scheda madre in modo che possa tenere traccia del tempo anche quando il sistema non è alimentato.
Molti sistemi operativi (Linux/Unix/Mac), memorizzano l'ora hardware come UTC in via predefinita; altri, ad esempio i sistemi operativi Microsoft Windows, memorizzano il tempo locale. L'utilizzo di metodi di memorizzazione differenti, provoca dei problemi nei sistemi dual boot.
Il vantaggio di avere un orologio hardware in UTC è che non c'è bisogno di modificarlo nel cambio di fuso orario o quando entra in vigore l'ora legale. Modificare le impostazioni di un sistema operativo Linux al fine di usare l'ora locale è molto più semplice che modificare Windows per utilizzare l'UTC.
A partire da Ubuntu 8.10 l'UTC è attivo in via predefinita.
Usare l'orario UTC su Windows
Il seguente metodo è supportato da Windows Vista SP2, WIndows 7 e Windows Server 2008 R2.
Per fare il modo che Windows utilizzi l'orario UTC:
Creare un file denominato 'WindowsTimeFixUTC.reg' con il seguente contenuto
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001
- Infine, fare fare doppio clic su di esso per unire il suo contenuto con quello del registro.
Utilizzare l'ora locale su Linux
Per fare il modo che Linux utilizzi l'ora locale:
Con i privilegi di amministrazione e un editor di testo modificare il file /etc/default/rcS aggiungendo:
# Set UTC=yes if your hardware clock is set to UTC (GMT) UTC=no
Risoluzione dei problemi
Qual'è il file di configurazione in uso?
ntp utilizza il file '/etc/ntp.conf.'. Se il file '/etc/ntp.conf.dhcp' esiste, allora il servizio NTP presume che si stia utilizzando DHCP per ridefinire le impostazioni di NTP e quindi userà quest'ultimo file.
Qualora si voglia configurare NTP per utilizzare il DHCP può essere utile la pagina man:
man dhcp.conf
Il proprio client deve essere configurato per i server NTP in dotazione. Per fare questo, è necessario modificare il file / etc/dhcp3/dhclient.conf.
Consultare le pagine man per ulteriori dettagli:
man dhclient.conf man dhcp-options
NTP è in esecuzione?
Di seguito sono elencati i comandi da terminale per avviare, monitorare e gestire il servizio.
Comando |
Funzione |
systemctl status systemd-timesyncd.service |
Verifica esecuzione. |
sudo systemctl start systemd-timesyncd.service |
Avvia il servizio. |
sudo systemctl restart systemd-timesyncd.service |
Riavvia il servizio. |
sudo systemctl stop systemd-timesyncd.service |
Arresta il servizio. |
sudo systemctl enable systemd-timesyncd.service |
Abilita il servizio all'avvio del sistema. |
sudo systemctl disable systemd-timesyncd.service |
Disabilita il servizio dall'avvio del sistema. |
Quali server sono in uso?
Di seguito sono elencati i comandi da terminale.
Comando |
Funzione |
grep ^server /etc/ntp.conf |
Verifica server. |
grep ^server /etc/ntp.conf.dhcp |
Verifica server NTP con dhcp differente. |
Questo server può essere risolto?
Se il seguente comando fallisce
host nome_server
potrebbero esserci problemi di DNS che è necessario correggere.
nome_server rappresenta il nome di un server elencato nel file di configurazione.
Questi server possono essere raggiunti?
Se il seguente comando fallisce
ntptrace nome_server
potrebbero esserci problemi di routing che è necessario correggere.
nome_server rappresenta il nome di un server elencato nel file di configurazione.
NTP utilizza la porta UDP 123, assicurarsi che i pacchetti siano correttamente indirizzati attraverso il gateway, se necessario.
Interrogare NTP
Digitare in una finestra di terminale il seguente comando:
ntpq --numeric --peers
Il risultato sarà simile al seguente:
remote refid st t when poll reach delay offset jitter ============================================================================== +193.204.114.232 .CTD. 1 u 45 256 377 28.715 27.826 9.547 *193.204.114.233 .CTD. 1 u 167 256 377 28.116 39.034 15.276
Il ritardo (delay) è espresso in millisecondi. Dovrebbe essere minore di 1 per i server della rete locale, minore di 10 per i server connessi ad internet tramite collegamento DSL e minore di 100 per le reti wireless.
La deviazione (offset) è espressa in millisecondi. E' l'ipotesi migliore corrente della differenza di tempo tra il proprio sistema e il server.
Jitter è una stima dell'errore della frequenza di clock locale. Se il valore è costantemente elevato allora il sistema potrebbe non essere allineato.
Perché NTP tenta il ripristino o fallisce?
NTP tenta di correggere l'orologio locale per mantenere il tempo esatto. Se l'orologio locale si allontana in maniera troppo veloce (di solito per problemi hardware o blocchi IRQ) allora NTP tenta di ripristinare il proprio orologio oppure si arresta. Risolvere il problema affinché NTP si comporti correttamente.