Ntp
| Fiche express | |
|---|---|
| Type | Service de synchronisation horaire (démon ntpd)
|
| Port | 123/udp |
| Protocole | NTP (RFC 5905) |
| Fichier de conf | /etc/ntp.conf
|
| Voir aussi | NTP chrony suite · Ntp.conf · Ntpdate · Ntpdc · Infos ntp · Hwclock · Date · Timeconfig |
NTP (Network Time Protocol) est le protocole et le service historique de
synchronisation de l'horloge système Linux sur des serveurs de temps de référence. Le démon
classique ntpd peut atteindre une précision de l'ordre de la milliseconde sur
Internet et descendre à quelques centaines de microsecondes sur un réseau local.
Sur les distributions récentes (RHEL/CentOS 8+ et dérivés), ntpd a été remplacé
par défaut par chrony, une suite plus moderne — voir NTP chrony suite. Cette page
couvre l'implémentation classique (ntpd/ntpdate).
Notion de stratum
Les serveurs NTP sont organisés en niveaux (stratum) selon leur distance à une source de temps de référence :
- Stratum 0 — horloge de référence elle-même (horloge atomique, GPS...), non accessible sur le réseau.
- Stratum 1 — serveur directement connecté à une source stratum 0.
- Stratum 2 et plus — serveur synchronisé sur un stratum inférieur, avec une précision qui diminue à chaque niveau.
Installation et activation
Sur une distribution basée RHEL/CentOS (ancienne génération, ntpd classique) :
yum install ntp systemctl enable ntpd systemctl start ntpd
Les anciennes commandes chkconfig ntpd on et service ntpd start
restent valables sur les systèmes SysV historiques, mais systemctl est la
commande à privilégier sur tout système systemd actuel.
Mise à jour manuelle immédiate de l'heure (utile avant le premier démarrage du démon, ou en diagnostic) :
ntpdate fr.pool.ntp.org
Voir Ntpdate pour le détail de cette commande.
Configuration
Le fichier principal est /etc/ntp.conf — directives essentielles :
driftfile /var/lib/ntp/drift server 0.centos.pool.ntp.org
Détail complet des directives (restrict, clés, contrôle d'accès...) : voir
Ntp.conf.
Pour restreindre l'accès à des clients en aval (downstream), dans /etc/ntp.conf :
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Vérifier l'état de la synchronisation
ntpq -p
Affiche la liste des serveurs utilisés par le service (détail complet des colonnes : Infos ntp). Une fois la synchronisation stabilisée, chaque ligne est précédée d'un symbole :
*— le serveur actuellement utilisé comme référence ;+— un candidat valide, retenu comme source potentielle ;-— un serveur écarté par l'algorithme de sélection ;- (espace) — un serveur inaccessible ou trop éloigné.
La colonne reach est un registre à décalage sur 8 bits affiché en octal : la
valeur 377 (octal, soit les 8 derniers sondages réussis) indique une synchronisation
pleine et stable. Une valeur plus basse (ex. 37) signale des sondages manqués.
Autres commandes utiles :
ntpq -c rl ntpq -c rv ntpstat
ntpstat renvoie un code de sortie exploitable en script :
exit status 0 – horloge synchronisée exit status 1 – horloge non synchronisée exit status 2 – état indéterminé (ex. ntpd injoignable)
Tracer la chaîne de serveurs jusqu'à la source primaire (fourni par le paquet ntp) :
ntptrace
Forcer une resynchronisation
Avec le service arrêté (une resynchronisation à chaud avec un grand écart peut être rejetée
par ntpd) :
service ntpd stop ntpd -gq service ntpd start
Fuseau horaire de la machine
tzselect cat /etc/sysconfig/clock
Sur les systèmes historiques encore en /etc/sysconfig/clock :
ZONE="Europe/Paris" UTC=false ARC=false
Voir Timeconfig pour l'outil dédié (RHEL5/6, remplacé par timedatectl sur les
systèmes systemd actuels).
Pour que le système utilise l'heure locale plutôt que l'UTC pour l'horloge matérielle (``/etc/adjtime``) — voir Hwclock pour la gestion complète de l'horloge matérielle.
Voir aussi
- NTP chrony suite — suite de remplacement moderne (RHEL8+/systemd)
- Ntp.conf — référence complète du fichier de configuration
- Ntpdate — resynchronisation ponctuelle en ligne de commande
- Ntpdc — administration interactive du démon
- Infos ntp — lecture détaillée des sorties de diagnostic
- Hwclock — horloge matérielle (RTC)
- Date — commande
date, manipulation de dates/timestamps - Timeconfig — configuration du fuseau horaire (legacy)