Linux : configurer un client NTP pour synchroniser la date et l’heure
Sommaire
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).
il me semble que ibusrt n’est plus supporté
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?
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
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
Bonjour,
Est-ce que certains ports sont à ouvrir ?
Pour une vm placé derrière un pfsense.
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.