NTP o Network Time Protocol è un protocollo utilizzato per sincronizzare tutti gli orologi di sistema in una rete per utilizzare lo stesso tempo. Quando usiamo il termine NTP, ci riferiamo al protocollo stesso e anche ai programmi client e server in esecuzione sui computer in rete. NTP appartiene alla tradizionale suite di protocolli TCP/IP e può essere facilmente classificato come una delle sue parti più vecchie.
Quando si imposta inizialmente l'orologio, sono necessari sei scambi entro 5-10 minuti prima che l'orologio venga impostato. Una volta sincronizzati gli orologi in una rete, i client aggiornano i propri orologi con il server una volta ogni 10 minuti. Questo di solito avviene attraverso un unico scambio di messaggi (transazione). Queste transazioni utilizzano il numero di porta 123 del tuo sistema.
In questo articolo, descriveremo una procedura passo passo su come:
- Installa e configura il server NTP su una macchina Ubuntu.
- Configura il client NTP per sincronizzare l'ora con il server.
Abbiamo eseguito i comandi e le procedure menzionati in questo articolo su un sistema Ubuntu 20.04 LTS.
Installa e configura il server NTP sul computer host
Segui questi passaggi per installare il server NTP sulla tua macchina Ubuntu host:
Nota:stiamo usando la riga di comando di Ubuntu, il Terminale, per installare e configurare NTP. Puoi aprire l'applicazione Terminale tramite la ricerca nell'utilità di avvio dell'applicazione o la scorciatoia Ctrl+Alt+T.
Fase 1:aggiorna l'indice del repository
Per installare l'ultima versione disponibile del software dai repository Internet, l'indice del repository locale deve essere in linea con essi. Esegui il comando seguente come sudo per aggiornare l'indice del tuo repository locale:
$ sudo apt-get update
Passaggio 2:installa il server NTP con apt-get
Eseguire il comando seguente come sudo per installare il demone del server NTP dai repository APT:
$ sudo apt-get install ntp
Tieni presente che solo un utente autorizzato può aggiungere, rimuovere e configurare software su Ubuntu.
Il sistema potrebbe chiederti la password per sudo e fornirti anche un'opzione S/n per continuare l'installazione. Inserisci Y e poi premi invio; Il server NTP verrà quindi installato sul tuo sistema. Tuttavia, il processo potrebbe richiedere del tempo a seconda della velocità di Internet.
Fase 3:verifica l'installazione (opzionale)
Puoi verificare la tua installazione NTP e anche controllare il numero di versione eseguendo il seguente comando nel tuo Terminale:
$ sntp --version
Fase 4:passa a un pool di server NTP più vicino alla tua posizione
Quando si installa il server NTP, è principalmente configurato per recuperare l'ora corretta. Tuttavia, puoi cambiare il pool di server con quelli più vicini alla tua posizione. Ciò include apportare alcune modifiche in /etc/ ntp.conf file.
Apri il file nell'editor nano come sudo eseguendo il comando seguente:
$ sudo nano /etc/ntp.conf
In questo file, sarai in grado di vedere un elenco di pool. Abbiamo evidenziato questo elenco nell'immagine sopra. Il compito qui è sostituire questo elenco di pool con un pool di server orari più vicini alla tua posizione. Il progetto pol.ntp.org fornisce un servizio NTP affidabile da un grande cluster di time server. Per scegliere un elenco di piscine in base alla tua posizione, visita la seguente pagina:
https://support.ntp.org/bin/view/Servers/NTPPoolServers
Abbiamo cercato un elenco di pool per gli Stati Uniti:
La pagina ci dice di aggiungere le seguenti righe al file ntp.conf:
server 0.us.pool.ntp.org server 1.us.pool.ntp.org server 2.us.pool.ntp.org server 3.us.pool.ntp.org
Ecco come appare il mio file dopo aver aggiunto le righe precedenti:
Esci dal file premendo Ctrl+X e quindi inserendo y per salvare le modifiche.
Fase 5:riavvia il server NTP
Affinché le modifiche di cui sopra abbiano effetto, è necessario riavviare il server NTP. Esegui il seguente comando come sudo per farlo:
$ sudo service ntp restart
Fase 6:verifica che il server NTP sia in esecuzione
Ora controlla lo stato del servizio NTP tramite il seguente comando:
$ sudo service ntp status
Lo stato Attivo verifica che il tuo server NTP sia attivo e funzionante.
Passaggio 7:Configura Firewall in modo che i client possano accedere al server NTP
Infine, è il momento di configurare il firewall UFW del tuo sistema in modo che le connessioni in entrata possano accedere al server NTP alla porta UDP numero 123.
Esegui il seguente comando come sudo per aprire la porta 123 per il traffico in entrata:
$ sudo ufw allow from any to any port 123 proto udp
La tua macchina host Ubuntu è ora configurata per essere utilizzata come server NTP.
Configura il client NTP per la sincronizzazione dell'ora con il server NTP
Configuriamo ora la nostra macchina client Ubuntu in modo che sia sincronizzata nel tempo con il server NTP.
Passaggio 1:installa ntpdate
Il comando ntpdate ti consentirà di controllare manualmente la configurazione della tua connessione con il server NTP. Apri l'applicazione Terminale sul computer client e inserisci il seguente comando come sudo:
$ sudo apt-get install ntpdate
Fase 2:specifica l'IP e il nome host del server NTP nel file hosts
Affinché il tuo server NTP venga risolto da un nome host nella tua macchina client, devi configurare il tuo file /etc/hosts.
Apri il file hosts come sudo nell'editor nano immettendo il seguente comando:
$ sudo nano /etc/hosts
Ora aggiungi l'IP del tuo server NTP e specifica un nome host come segue in questo file:
Esci dal file premendo Ctrl+X e salvalo inserendo y.
Fase 3:verifica se l'ora della macchina client è sincronizzata con il server NTP
Il seguente comando ntpdate ti consentirà di verificare manualmente se l'ora è sincronizzata tra i sistemi client e server:
$ sudo ntpdate NTP-server-host
L'output dovrebbe idealmente mostrare un offset di tempo tra i due sistemi.
Passaggio 4:Disabilita il servizio timesyncd systemd sul client
Poiché vogliamo che il nostro client sincronizzi l'ora con il server NTP, disabilitiamo il servizio timesyncd sulla macchina client.
Immettere il seguente comando per farlo:
Fase 5:installa NTP sul tuo client
Esegui il seguente comando come sudo per installare NTP sul tuo computer client:
$ sudo apt-get install ntp
Fase 6:Configura il file /etc/ntp.conf per aggiungere il tuo server NTP come nuovo server orario
Ora vogliamo che la nostra macchina client utilizzi il nostro server host NTP da utilizzare come server orario predefinito. Per questo, dobbiamo modificare il file /etc/ntp.conf sulla macchina client.
Esegui il seguente comando come sudo per aprire il file nell'editor Nano:
$ sudo nano /etc/ntp.conf
Quindi, aggiungi la seguente riga nel file, dove NTP-server-host è il nome host che hai specificato per il tuo server NTP:
server NTP-server-host prefer iburst
Ecco come appare il mio file dopo aver specificato il time server:
Premi Ctrl+x per uscire dal file, quindi inserisci y per salvare le modifiche.
Passaggio 7:riavvia il server NTP
Affinché le modifiche precedenti abbiano effetto, è necessario riavviare il servizio NTP. Esegui il seguente comando come sudo per farlo:
$ sudo service ntp restart
Fase 8:Visualizza la coda di sincronizzazione dell'ora
Ora le tue macchine client e server sono configurate per la sincronizzazione dell'ora. È possibile visualizzare la coda di sincronizzazione dell'ora eseguendo il comando seguente:
$ ntpq -ps
Dovresti essere in grado di vedere NTP-server-host come host/origine di sincronizzazione dell'ora nella coda.
Quindi questo era tutto ciò che dovevi sapere sull'installazione e la configurazione di NTP per sincronizzare l'ora sulle tue macchine Ubuntu in rete. Il processo può sembrare un po' macchinoso, ma se segui attentamente tutti i passaggi precedenti, uno per uno, le tue macchine verranno sincronizzate in pochissimo tempo.