22/12/2024

Commandes et Système

Linux : configurer un client NTP pour synchroniser la date et l’heure

I. Présentation

Dans ce tutoriel, nous allons apprendre à configurer le client NTP de Debian 12 pour que la machine synchronise la date et l'heure à partir d'un serveur de temps externe. Nous verrons aussi comment configurer le fuseau horaire et comment afficher la configuration actuelle.

Sur Linux, il existe plusieurs paquets pour configurer un client NTP et ainsi se synchroniser à partir d'un serveur de temps externe (externe à l'entreprise ou un autre serveur). Nous pouvons citer ntpd, l'application Chrony, ainsi que Systemd grâce à son service Timesyncd. C'est lui que l'on va configurer sur Debian 12, car il est présent nativement !

Version originale de l'article : 08 avril 2014

II. Configurer le fuseau horaire

Commencez par vérifier la date et l'heure actuelle de votre machine, via cette commande :

date

Puis, vous allez commencer par définir le bon fuseau horaire. Pour cela, listez les fuseaux horaires disponibles via la commande indiquée ci-dessous. Appuyez sur la barre d'espace pour faire défiler la liste ou "CTRL + C" pour quitter.

timedatectl list-timezones

Pour se caler sur l'heure française, configurez votre machine pour qu'elle utilise le fuseau horaire "Europe/Paris" comme ceci :

sudo timedatectl set-timezone Europe/Paris

III. Vérifier l'état du service systemd-timesyncd

Désormais, nous allons voir comment configurer systemd-timesyncd sur la machine. Commencez par vérifier l'état du service, afin de vous assurer de sa présence...

sudo systemctl status systemd-timesyncd.service

Voici le résultat obtenu sur une machine Debian 12 :

S'il n'est pas installé sur votre machine, sachez que vous pouvez l'ajouter via cette commande :

sudo apt-get update
sudo apt-get install systemd-timesyncd

Quand c'est fait, activez son démarrage automatique et lancez-le dès maintenant :

sudo systemctl enable --now systemd-timesyncd

Comment effectuer la configuration ? C'est ce que nous verrons dans la prochaine partie de ce tutoriel.

IV. Configurer le client NTP

Avant d'évoquer la configuration, exécutez la commande ci-dessous pour afficher la configuration actuelle. Ce sera l'occasion de voir si vous avez bien défini le bon fuseau horaire. Vous devriez aussi voir la mention "System clock synchronized: no", ce qui montre que la machine n'est pas synchronisée avec une source externe.

timedatectl

Désormais, éditez le fichier de configuration :

sudo nano /etc/systemd/timesyncd.conf

Puis, ajoutez une ligne pour définir l'adresse de votre serveur NTP. Vous pouvez définir plusieurs valeurs, si besoin. Ici, j'utilise une source publique associée à un pool de serveurs : fr.pool.ntp.org (voir cette page). Il y a d'autres options, mais elles ne sont pas indispensables pour configurer le client NTP.

NTP=fr.pool.ntp.org

Quand c'est fait, enregistrez et fermez le fichier.

Puis, exécutez la commande suivante pour activer la synchronisation NTP :

sudo timedatectl set-ntp true

Redémarrez le service systemd-timesyncd :

sudo systemctl restart systemd-timesyncd.service

À partir de maintenant, votre machine devrait chercher à se synchroniser via les serveurs de la source fr.pool.ntp.org. Pour vous en assurer, voici deux commandes utiles pour le diagnostic et pour afficher la configuration actuelle.

timedatectl
timedatectl show-timesync --all

Cette fois-ci, nous pouvons constater que l'option "System clock synchronized" est à "yes", ce qui indique que la synchronisation NTP fonctionne.

V. Conclusion

Quelques minutes suffisent pour configurer le client NTP d'une machine Debian 12 ! Libre à vous d'utiliser la source de temps de votre choix, tout en sachant qu'il est préférable d'utiliser le même pool NTP sur vos équipements pour garder une cohérence. Une mauvaise synchronisation peut avoir un impact sur l'horodatage des journaux, mais aussi sur l'authentification (avec Windows).

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

6 commentaires sur “Linux : configurer un client NTP pour synchroniser la date et l’heure

  • il me semble que ibusrt n’est plus supporté

    Répondre
  • je souhaite mettre en place un serveur de temps chez moi à la maison mais je veux qu’il soit fiable et puisse profiter à tout le monde entier.comment faire?

    Répondre
    • Bonjour mathieu,

      Pour que ton serveur puisse profiter à tout le monde et qu’il soit disponible sur Internet, il faudrait déjà que tu disposes d’une IP fixe ou d’un système DynDNS pour que ta machine soit toujours joignable par le même biais. Il te faudra également mettre en place une redirection de port depuis ton IP publique sur le port NTP vers l’IP interne de ta machine. Il faut pour cela que tu ais des notions sur ce qu’est le nat (cet article sur le nat statique et dynamique pourra t’aider). Je t’invite également a lire cet article qui indique comment mettre un serveur sur internet sur une box SFR, Orange et Bouygues, même s’il date un peu, il devrait t’aider. Si tu as besoin de plus de précision ou que tu as d’autres questions, je t’invite à utiliser notre forum. Il est prévu à cet effet et cela pourra profiter à plus de monde ! 🙂

      Mickael

      Répondre
  • Bonjour,

    J’ai réussi à mettre à jour mon petit serveur embarqué sous linux sur notre NTP local. Par contre j’ai un décalage de temps d’une heure. Je suppose que c’est suivant le fuseau horaire dans laquelle on se trouve ou la gestion des horaires été, hiver.

    Comment gérer cela ?

    Pour le moment je lance le client ntp par:
    ntpd -d -p 10.234.64.9
    et quelques secondes après mon heure et date ce met à jour.

    Merci

    Répondre
  • Bonjour,
    Est-ce que certains ports sont à ouvrir ?
    Pour une vm placé derrière un pfsense.

    Répondre
    • Bonjour,
      Le protocole NTP utilise le port 123 en UDP, donc si le serveur NTP est sur Internet, la VM doit pouvoir contacter le serveur NTP sur ce port.

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.