In questo tutorial parleremo di come installare e configurare Chrony , un client e server NTP alternativo per sistemi simili a Unix. Chrony può sincronizzare l'orologio del sistema più velocemente con una migliore precisione dell'ora e può essere particolarmente utile per i sistemi che non sono sempre online. Chrony è gratuito, open source e supporta varianti GNU/Linux e BSD come FreeBSD, NetBSD, macOS e Solaris.
Installazione di Chrony
Chrony è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux. Se sei su Arch Linux, esegui il seguente comando per installarlo:
$ sudo pacman -S chrony
Su Debian, Ubuntu, Linux Mint:
$ sudo apt-get install chrony
Su Fedora:
$ sudo dnf install chrony
Una volta installato, avvia chronyd.service demone se non è già stato avviato:
$ sudo systemctl start chronyd.service
Fai in modo che si avvii automaticamente ad ogni riavvio usando il comando:
$ sudo systemctl enable chronyd.service
Per verificare se Chronyd.service è stato avviato, esegui:
$ sudo systemctl status chronyd.service
Se tutto è a posto, vedrai un output simile a quello di seguito.
● chrony.service - chrony, an NTP client/server Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: ena Active: active (running) since Wed 2018-10-17 10:34:53 UTC; 3min 15s ago Docs: man:chronyd(8) man:chronyc(1) man:chrony.conf(5) Main PID: 2482 (chronyd) Tasks: 1 (limit: 2320) CGroup: /system.slice/chrony.service └─2482 /usr/sbin/chronyd Oct 17 10:34:53 ubuntuserver systemd[1]: Starting chrony, an NTP client/server... Oct 17 10:34:53 ubuntuserver chronyd[2482]: chronyd version 3.2 starting (+CMDMON Oct 17 10:34:53 ubuntuserver chronyd[2482]: Initial frequency -268.088 ppm Oct 17 10:34:53 ubuntuserver systemd[1]: Started chrony, an NTP client/server. Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 85.25.84.166 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Source 85.25.84.166 replaced with 2403 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 91.189.89.199 Oct 17 10:35:06 ubuntuserver chronyd[2482]: Selected source 106.10.186.200
Come puoi vedere, il servizio Chrony è avviato e funziona!
Configura Chrony
I client NTP devono sapere quali server NTP devono contattare per ottenere l'ora corrente. Possiamo specificare i server NTP nel server o piscina direttiva nel file di configurazione NTP. Di solito, il file di configurazione predefinito è /etc/chrony/chrony.conf o /etc/chrony.conf a seconda della versione della distribuzione Linux. Per una migliore affidabilità, si consiglia di specificare almeno tre server.
Le righe seguenti sono solo un esempio tratto dal mio server LTS Ubuntu 18.04.
[...] # About using servers from the NTP Pool Project in general see (LP: #104525). # Approved by Ubuntu Technical Board on 2011-02-08. # See http://www.pool.ntp.org/join.html for more information. pool ntp.ubuntu.com iburst maxsources 4 pool 0.ubuntu.pool.ntp.org iburst maxsources 1 pool 1.ubuntu.pool.ntp.org iburst maxsources 1 pool 2.ubuntu.pool.ntp.org iburst maxsources 2 [...]
Come puoi vedere nell'output sopra, Progetto NTP Pool è stato impostato come time server predefinito. Per coloro che si chiedono, il progetto del pool NTP è il cluster di server temporali che fornisce il servizio NTP a decine di milioni di clienti in tutto il mondo. È il time server predefinito per Ubuntu e la maggior parte delle altre principali distribuzioni Linux.
Ecco,
- l'iburst viene utilizzata per velocizzare la sincronizzazione iniziale.
- le maxsources fa riferimento al numero massimo di sorgenti NTP.
Assicurati che i server NTP che hai scelto siano ben sincronizzati, stabili e vicini alla tua posizione per migliorare la precisione dell'ora con le sorgenti NTP.
Gestisci Chronyd dalla riga di comando
Chrony ha un'utilità da riga di comando denominata chronyc per controllare e monitorare i croni demone (chronyd).
Per verificare se è cronico è sincronizzato, possiamo utilizzare il tracciamento comando come mostrato di seguito.
$ chronyc tracking Reference ID : 6A0ABAC8 (t1.time.sg3.yahoo.com) Stratum : 3 Ref time (UTC) : Wed Oct 17 11:48:51 2018 System time : 0.000984587 seconds slow of NTP time Last offset : -0.000912981 seconds RMS offset : 0.007983995 seconds Frequency : 23.704 ppm slow Residual freq : +0.006 ppm Skew : 1.734 ppm Root delay : 0.089718960 seconds Root dispersion : 0.008760406 seconds Update interval : 515.1 seconds Leap status : Normal
Possiamo verificare le sorgenti dell'ora corrente che chrony utilizza con il comando:
$ chronyc sources 210 Number of sources = 8 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- chilipepper.canonical.com 2 10 377 296 +102ms[ +104ms] +/- 279ms ^- golem.canonical.com 2 10 377 302 +105ms[ +107ms] +/- 290ms ^+ pugot.canonical.com 2 10 377 297 +36ms[ +38ms] +/- 238ms ^- alphyn.canonical.com 2 10 377 279 -43ms[ -42ms] +/- 238ms ^- dadns.cdnetworks.co.kr 2 10 377 1070 +40ms[ +42ms] +/- 314ms ^* t1.time.sg3.yahoo.com 2 10 377 169 -13ms[ -11ms] +/- 80ms ^+ sin1.m-d.net 2 10 275 567 -9633us[-7826us] +/- 115ms ^- ns2.pulsation.fr 2 10 377 311 -75ms[ -73ms] +/- 250ms
L'utilità Chronyc può trovare le statistiche di ciascuna sorgente, come il tasso di deriva e il processo di stima dell'offset, utilizzando sourcestats comando.
$ chronyc sourcestats 210 Number of sources = 8 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== chilipepper.canonical.com 32 16 89m +6.293 14.345 +30ms 24ms golem.canonical.com 32 17 89m +0.312 18.887 +20ms 33ms pugot.canonical.com 32 18 89m +0.281 11.237 +3307us 23ms alphyn.canonical.com 31 20 88m -4.087 8.910 -58ms 17ms dadns.cdnetworks.co.kr 29 16 76m -1.094 9.895 -83ms 14ms t1.time.sg3.yahoo.com 32 16 91m +0.153 1.952 +2835us 4044us sin1.m-d.net 29 13 83m +0.049 6.060 -8466us 9940us ns2.pulsation.fr 32 17 88m +0.784 9.834 -62ms 22ms
Se il tuo sistema non è connesso a Internet, devi notificare a Chrony che il sistema non è connesso a Internet. Per farlo, esegui:
$ sudo chronyc offline [sudo] password for sk: 200 OK
Per verificare lo stato delle tue sorgenti NTP, esegui semplicemente:
$ chronyc activity 200 OK 0 sources online 8 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Come vedi, tutte le mie sorgenti NTP sono inattive al momento.
Una volta connesso a Internet, notifica a Chrony che il tuo sistema è di nuovo online utilizzando il comando:
$ sudo chronyc online 200 OK
Per visualizzare lo stato delle sorgenti NTP, eseguire:
$ chronyc activity 200 OK 8 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Per una spiegazione più dettagliata di tutte le opzioni e parametri, fare riferimento alle pagine man.
$ man chronyc
$ man chronyd
E per ora è tutto. Spero che questo sia stato utile. Nei tutorial successivi vedremo come configurare un server NTP locale utilizzando Chrony e configurare i client affinché lo utilizzino per sincronizzare l'ora.
Resta sintonizzato!