Accueil

NTP Client : Synchroniser l'heure de son système

System
Difficulte: Beginner
4 min de lecture

Tutoriel pour installer et configurer un client NTP sur Linux afin de synchroniser l\'heure système avec des serveurs de temps fiables.

Retour aux tutoriels

L'essentiel

  • Une horloge juste n'est pas un confort : les logs ne se corrèlent plus entre machines si elles dérivent, les certificats TLS ont une période de validité, Kerberos est très sensible aux écarts de temps, et les tâches cron partent au mauvais moment.
  • Trois clients possibles : systemd-timesyncd, intégré à systemd et présent par défaut sur les distributions modernes, très léger mais client uniquement ; chrony, plus performant sur les machines pas toujours en ligne ou à réseau instable, et capable de servir le temps ; ntpd, l'implémentation historique, robuste mais plus lourde.
  • Avec timesyncd, tout tient en deux commandes : timedatectl status pour chercher la ligne NTP service: active, et sudo timedatectl set-ntp true pour l'activer. Les serveurs se changent dans /etc/systemd/timesyncd.conf, section [Time], directive NTP=, suivi d'un sudo systemctl restart systemd-timesyncd.
  • Avec chrony, désactivez d'abord timesyncd via sudo timedatectl set-ntp false, puis installez le paquet, déclarez vos serveurs (pool 2.fr.pool.ntp.org iburst) dans /etc/chrony/chrony.conf et activez le service avec systemctl start chronyd puis systemctl enable chronyd.
  • Vérification et réseau : chronyc sources -v liste les sources avec leur état et leur décalage, chronyc tracking résume la synchronisation de l'horloge système. Côté pare-feu, NTP passe en UDP sur le port 123 — le trafic sortant doit être autorisé.
Pourquoi la synchronisation de l'heure est-elle si importante ?
Une heure système précise est cruciale pour de nombreuses raisons : - Les logs doivent être horodatés correctement pour le dépannage et la corrélation d'événements. - Les certificats de sécurité (SSL/TLS) ont une période de validité. - Les protocoles d'authentification comme Kerberos sont très sensibles aux écarts de temps. - Les tâches planifiées (cron) doivent s'exécuter au bon moment. - La cohérence des données dans les systèmes distribués et les bases de données.

Quel client NTP utiliser ?

Sur les systèmes Linux modernes, vous avez principalement trois choix :

  • systemd-timesyncd : Intégré à systemd. C'est le client par défaut sur de nombreuses distributions modernes (comme Ubuntu 20.04+). Il est très léger et simple, parfait pour un client. Il ne peut pas servir de serveur NTP.
  • chrony : L'alternative moderne à ntpd. Il est plus performant pour les systèmes qui ne sont pas toujours en ligne (ordinateurs portables) ou qui ont une connexion réseau instable. Il peut aussi servir de serveur NTP.
  • ntpd : L'implémentation de référence historique. Toujours très robuste, mais souvent considéré comme plus lourd et complexe que ses alternatives pour un simple client.

Recommandation : Utilisez systemd-timesyncd si disponible. Si vous avez besoin de plus de fonctionnalités ou de servir le temps, utilisez chrony.

Configuration de systemd-timesyncd (le plus simple)

C'est souvent déjà activé par défaut.

Étape 1 : Vérifier le statut

timedatectl status

Cherchez la ligne `NTP service: active`. Si c'est le cas, vous n'avez rien à faire !

Étape 2 : Activer si nécessaire

sudo timedatectl set-ntp true

Étape 3 : (Optionnel) Changer les serveurs NTP

Les serveurs sont configurés dans /etc/systemd/timesyncd.conf.

sudo nano /etc/systemd/timesyncd.conf

Décommentez et modifiez la ligne `NTP=` pour y mettre vos serveurs, séparés par des espaces.

[Time]
NTP=0.fr.pool.ntp.org 1.fr.pool.ntp.org

Redémarrez le service pour appliquer les changements :

sudo systemctl restart systemd-timesyncd

Configuration de chrony

Si vous préférez chrony ou si timesyncd n'est pas disponible.

Étape 1 : Installation

# D'abord, désactiver timesyncd s'il est actif
sudo timedatectl set-ntp false

# Sur Debian / Ubuntu
sudo apt-get install -y chrony

# Sur CentOS / RHEL
sudo yum install -y chrony

Étape 2 : Configuration

Le fichier de configuration est /etc/chrony/chrony.conf (ou /etc/chrony.conf).

sudo nano /etc/chrony/chrony.conf

La configuration par défaut utilise souvent des pools de serveurs. Vous pouvez les remplacer par des serveurs plus proches de votre localisation (ex: `fr.pool.ntp.org` pour la France).


# Utiliser des serveurs du pool NTP français.
pool 2.fr.pool.ntp.org iburst

# ... autres options

Étape 3 : Démarrer et activer le service

sudo systemctl start chronyd
sudo systemctl enable chronyd

Étape 4 : Vérifier la synchronisation

La commande chronyc est l'outil pour interagir avec le démon chronyd.

chronyc sources -v

Cette commande liste les sources de temps, leur état et le décalage.

chronyc tracking

Cette commande donne un résumé de la synchronisation de l'horloge système.

Le paramètre `iburst`
L'option iburst, présente dans les configurations par défaut, est très utile. Elle indique au client d'envoyer une rafale de paquets au démarrage pour accélérer la première synchronisation.
Pare-feu
NTP utilise le port 123 en UDP. Si vous avez un pare-feu restrictif, assurez-vous que le trafic sortant sur ce port est autorisé.

Conclusion

Maintenir une heure système précise est une tâche de fond simple mais fondamentale pour tout administrateur système. Avec les outils modernes comme systemd-timesyncd et chrony, la configuration d'un client NTP est devenue extrêmement simple. Il n'y a aucune raison de ne pas l'activer sur tous vos serveurs Linux.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

systemd-timesyncd ou chrony, lequel choisir ?
Prenez systemd-timesyncd s'il est disponible et que la machine est un simple client avec une connexion stable : il est déjà là, léger, et se pilote entièrement avec timedatectl. Passez à chrony si la machine n'est pas toujours en ligne (portable), si le réseau est instable, ou si vous devez à votre tour distribuer l'heure à d'autres machines — timesyncd ne sait pas faire serveur NTP.
Faut-il désactiver systemd-timesyncd avant d'installer chrony ?
Oui, impérativement : deux clients NTP qui pilotent la même horloge système se marchent dessus et produisent une synchronisation erratique. Lancez sudo timedatectl set-ntp false avant d'installer chrony, puis démarrez chronyd. Vous pouvez contrôler ensuite avec timedatectl status que timesyncd n'est plus actif.
Comment vérifier que l'horloge est réellement synchronisée et pas seulement configurée ?
Avec timesyncd, timedatectl status doit afficher NTP service: active. Avec chrony, chronyc tracking donne le résumé de l'état de l'horloge système, et chronyc sources -v liste chaque source de temps avec son état et son décalage. Un service démarré ne prouve rien : c'est le décalage rapporté par ces commandes qui compte.
Le service tourne mais aucune source ne répond, que vérifier en premier ?
Le pare-feu. NTP utilise le port 123 en UDP, et beaucoup de politiques restrictives n'autorisent que TCP en sortie : le trafic sortant sur 123/UDP doit être explicitement permis. Vérifiez ensuite qu'un seul démon NTP tourne sur la machine et que les serveurs déclarés (par exemple 2.fr.pool.ntp.org) se résolvent correctement en DNS.
À quoi sert le mot-clé iburst dans la configuration ?
Sans iburst, le client envoie ses requêtes au rythme normal d'interrogation et la première synchronisation peut prendre plusieurs minutes après un démarrage. Avec iburst, il envoie une rafale de paquets dès le lancement et converge quasi immédiatement. C'est pour cette raison qu'il figure dans presque toutes les configurations par défaut, et il n'y a aucune raison de le retirer.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.