Comment configurer un serveur NTP local?


16

J'ai installé le serveur NTP sur Ubuntu Server 10.04 en utilisant:

sudo apt-get install ntp

Le démon NTP semble fonctionner et écouter sur le port 123.

Cependant, je n'ai pas pu obtenir l'heure d'une autre machine:

sudo ntpdate -u my_ntp_server
23 Nov 18:48:41 ntpdate[2990]: no server suitable for synchronization found

Y a-t-il des configurations nécessaires à faire?

Réponses:


20

Voici un bon guide d'utilisation des forums Ubuntu: http://ubuntuforums.org/showthread.php?t=862620

Copie-pâtes flagrante:

HOWTO: configurer un serveur NTP

Ce didacticiel décrit comment configurer votre machine en tant que serveur NTP (Network Time Protocol) local et / ou comment utiliser le démon NTP pour maintenir régulièrement une heure système précise.

Qu'est-ce que le NTP?

Le Network Time Protocol (NTP) est un protocole conçu pour synchroniser avec précision les horloges locales avec les serveurs de temps en réseau. Le réseau NTP de serveurs horaires est configuré de manière hiérarchique, de sorte que tout utilisateur peut accéder au système en tant que serveur à un certain niveau (voir la page Wikipedia pour plus de détails).

La hiérarchie NTP est séparée en différents niveaux, appelés strates d'horloge. Le niveau le plus précis, Stratum 0, est réservé aux horloges atomiques, etc. Le niveau suivant, Stratum 1, est généralement utilisé par des machines en réseau connectées localement aux horloges Stratum 0. Les Stratum 2 ... 15 sont des machines NTP qui sont connectées à leur tour aux horloges de niveau inférieur et entre elles.

Ce guide décrit comment synchroniser avec précision les machines Stratum 1 et 2 et maintenir une horloge système aussi précise que possible tout au long de la journée. Des sections sont également incluses sur la façon de permettre à votre machine de fonctionner comme un serveur Stratum 2/3 pour d'autres machines sur votre réseau local.

Dois-je créer un serveur NTP?

Non ... absolument pas! Si vous êtes satisfait que les horloges de votre réseau présentent une différence inconnue par rapport à l'heure standard (et les unes aux autres), vous n'avez pas besoin de configurer un serveur NTP. J'en ai installé un sur mon ordinateur portable afin de synchroniser plusieurs machines sur un réseau local en <1 ms pour une expérience de bio-ingénierie. Il existe en outre divers autres avantages, qui sont décrits ci-dessous.

Motivation:

Régulièrement, les boîtes Ubuntu non modifiées utilisent ntpdate ( /usr/sbin/ntpdate) pour synchroniser périodiquement l'horloge avec un serveur de temps externe. Cette approche synchronise l'horloge avec une résolution de cours (généralement une fois par jour).

Les horloges des ordinateurs sont imparfaites et dériveront du serveur de temps (correct) pendant la journée. En outre, les taux de dérive dans les horloges de différents ordinateurs diffèrent, de sorte qu'à la fin de la journée, des différences importantes peuvent exister entre les différentes machines en réseau local, ce qui peut interférer avec certaines opérations (par exemple, un fichier makefile peut se plaindre lors du déplacement du code source entre différentes machines?).

Il est possible d'exécuter le démon NTP localement sur une machine de votre réseau. Cela présente de multiples avantages: premièrement, le démon NTP "apprend" progressivement le taux de dérive de votre machine locale et peut le corriger tout au long de la journée. La synchronisation avec les serveurs de temps de niveau supérieur a lieu plusieurs fois par jour, et de nombreux serveurs de temps différents peuvent être utilisés simultanément pour rendre la synchronisation plus précise. De cette façon, le démon NTP agit comme un client horaire précis, en gardant votre horloge système aussi proche que possible de l'heure standard.

En plus de maintenir une horloge système précise, le démon NTP permet à une machine de votre réseau (si vous le souhaitez) de fonctionner comme un serveur de temps NTP. Cela permettra aux autres machines de votre réseau local de se synchroniser avec votre serveur de temps LAN de manière très rapide et précise, car la latence du réseau est minimisée. De cette façon, les différences d'horloges entre les machines de votre réseau sont aussi minimes que possible. Mac et même les boîtes Windows peuvent également se synchroniser avec un serveur NTP, si vous en configurez un.

Il existe d'autres motivations, moins personnelles, pour configurer une machine en tant que serveur NTP. Tout d'abord, cela peut réduire la pression sur les serveurs NTP de niveau supérieur, car d'autres machines de votre réseau local peuvent se synchroniser avec un serveur de temps établi localement. En outre, ntpdate a été déconseillé en faveur de l'utilisation de l'indicateur -q pour ntpd (qui imite sa fonctionnalité). Ainsi, même si vous ne voulez pas exécuter ntpd en permanence en arrière-plan, ntpdate sera éventuellement remplacé par ntpd, donc vous voudrez peut-être vous familiariser avec lui maintenant

Comment maintenir une horloge système précise avec ntpd

  1. Installez le démon NTP

Tout d'abord, installez le démon NTP (ntpd):

sudo aptitude install ntpd

Comme cela a été mentionné précédemment, ntpd peut agir à la fois en tant que client (en synchronisant l'heure de votre système) et en tant que serveur (en fournissant l'heure exacte pour d'autres machines).

Si vous le souhaitez, vous pouvez également supprimer le programme de synchronisation horaire précédent (obsolète), ntpdate. Peut-être serait-il plus sage de le faire après avoir fait travailler ntpd

sudo aptitude remove ntpdate
  1. Configurez le démon correctement

Le fichier de configuration de ntpd se trouve dans /etc/ntp.conf. Le fichier Ubuntu par défaut nécessite probablement quelques modifications pour des performances optimales.

La première section que vous voudrez peut-être modifier est la liste des serveurs avec lesquels se synchroniser. La section par défaut se présente probablement comme suit:

# You do need to talk to an NTP server or two (or three).
server ntp.ubuntu.com

Afin d'obtenir l'heure la plus précise possible, il est préférable de communiquer avec plusieurs serveurs NTP différents et de les garder aussi près de votre emplacement physique que possible. Il existe différentes listes de serveurs en ligne, probablement la meilleure se trouve ici. Il y a un débat sur le nombre approprié de serveurs à utiliser. Un vaut mieux que deux, et trois ou plus sont probablement une bonne idée, tant que vous n'allez pas trop loin. Voici un exemple de quelques serveurs de temps que j'ai utilisés:

server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

Une fois que quelques bons serveurs ont été trouvés, ajoutez-les à la liste, en mettant 'iburst'après le plus prometteur. Par exemple:

server nist1-dc.WiTime.net iburst

Cela entraînera la synchronisation très rapide de ntpd avec ce serveur après le démarrage. Sinon, ntpd tendra lentement à s'accorder avec la liste des serveurs (comme c'est sa nature), et il faudra peut-être 15 à 20 minutes pour se synchroniser suffisamment bien pour agir comme un serveur de temps pour le reste de votre réseau.

Ajoutez également quelques lignes supplémentaires au bas de la liste de vos serveurs pour fournir votre heure locale par défaut si vous perdez temporairement la connectivité Internet:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Cela évitera toute méchanceté si vous exécutez ntpd sur un ordinateur portable ou une autre machine avec des périodes de déconnexion intermittentes d'Internet.

Dans l'ensemble, la liste des serveurs devrait ressembler à la suivante (c'est la mienne, vos serveurs seront probablement différents):

# You do need to talk to an NTP server or two (or three).
server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
server 127.127.1.0
fudge 127.127.1.0 stratum 10
  1. Assurez-vous que la configuration fonctionne

Maintenant que vous avez une liste de serveurs appropriée dans votre /etc/ntp.conffichier, il est temps d'exécuter le démon et de voir si vous synchronisez correctement! Assurez-vous que vous disposez d'une connexion Internet active, puis exécutez:

sudo /etc/init.d/ntp restart

Ensuite, surveillez votre journal système pour voir si vous vous synchronisez avec un serveur de temps:

tail -f /var/log/syslog

Dans environ 10-15 secondes (ou jusqu'à 15-20 minutes si vous avez oublié de mettre 'iburst' après votre serveur préféré), vous devriez voir quelque chose comme ceci dans votre journal système:

Jul 17 16:50:22 hostname ntpd[22402]: synchronized to 140.221.9.20, stratum 2

Si ce message ne vient jamais, vous n'êtes pas encore correctement synchronisé avec le réseau du serveur NTP. Vérifiez la liste des homologues NTP avec lesquels vous communiquez en utilisant les éléments suivants:

ntpq -c lpeer

Si les champs «délai», «décalage» et «gigue» ne sont pas nuls et que vous n'avez pas synchronisé, cela signifie probablement que vous avez juste besoin d'attendre un moment. Vérifiez à nouveau que vous avez inséré l'argument «iburst» dans votre liste de serveurs! Mes pairs, pour référence, ressemblent à ceci:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*milo.mcs.anl.go 192.5.41.40      2 u    4   64   77   46.213   67.753   2.207
-europium.canoni 193.79.237.14    2 u   63   64   37   97.375   71.020   1.875
-dtype.org       69.25.96.13      2 u    2   64   77   86.956   69.178   1.804
+smtp130.junkema 216.218.254.202  2 u    2   64   77   87.266   67.677   0.916
+kechara.flame.o 216.218.254.202  2 u    -   64   77   89.183   68.717   1.713
-host2.kingrst.c 99.150.184.201   2 u    -   64   77   24.306   62.121   2.608
 LOCAL(0)        .LOCL.          10 l   59   64   37    0.000    0.000   0.002
  1. Partager! (optionnel)

Une fois que ntpd est en cours d'exécution et synchronisé avec les serveurs de temps que vous avez sélectionnés, vous pouvez le configurer afin de servir de serveur de temps pour d'autres machines. Pour ce faire, ajoutez une section comme celle-ci à /etc/ntp.conf:

# Allow LAN machines to synchronize with this ntp server
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
You may add as many (or few) CIDR address blocks to allow to synchronize with your machine as you'd like. I included those commonly used with Linksys (192.168.1.*) and SMC (192.168.2.*) routers.
  1. Synchroniser! (optionnel)

Une fois que vous avez configuré un serveur NTP à l'aide des étapes 1 à 4, vous pouvez synchroniser les autres machines de votre réseau avec votre serveur de différentes manières. J'en décrit quelques-uns ci-dessous:

ntpd:

Si vous avez installé ntpd sur une autre machine, vous pouvez utiliser votre premier serveur dans la liste des serveurs de votre fichier ntp.conf, ou vous synchroniser une fois avec l'option -q, comme suit:

ntpd -q [IP address of your server]

ntpdate:

Si ntpdate est toujours installé sur une autre machine, vous pouvez l'utiliser pour synchroniser avec votre serveur comme suit:

ntpdate [IP address of your server]

Remarque: si vous exécutez ntpd sur une machine et que, pour une raison quelconque, vous souhaitez toujours utiliser ntpdate pour définir l'heure, vous devez utiliser l'option -u.

Les fenêtres:

Les machines Windows utilisent une version simplifiée de NTP appelée SNTP (Simple Network Time Protocol) et peuvent se synchroniser avec les serveurs NTP. Afin de synchroniser avec votre nouveau serveur, double-cliquez sur l'heure et allez dans l'onglet "Internet Time". Mettez l'adresse IP de votre serveur dans le champ "Serveur". J'ai joint une capture d'écran de la synchronisation de Windows XP avec un serveur de temps LAN, si quelqu'un est intéressé.

C'est ça! L'ensemble du processus n'est pas difficile, mais peut être source de confusion pour quelqu'un qui n'a pas beaucoup traité avec le réseau NTP auparavant. J'espère que ça aide! Faites-moi savoir si vous rencontrez des problèmes lors de la configuration de votre serveur.

Mike

Liens

J'ai trouvé les liens suivants utiles ... vous le pouvez aussi!

https://help.ubuntu.com/7.10/server/C/NTP.html http://linuxwave.blogspot.com/2007/0...tp-server.html http: //lists.ntp.isc. org / pipermail / q ... er / 011889.html http://www.linuxhomenetworking.com/w...Fntp.conf_File http://www.ntp.org/ntpfaq/NTP-a-faq.htm


Merci pour le lien. En fait, je n'ai pas changé ma configuration! Cela a juste fonctionné après un certain temps.
Khaled

sur votre serveur ntp, vous pouvez l'exécuter ntpdate -s a_stratum_1_server_addresspour le forcer à se synchroniser immédiatement. puis sur votre autre machine (client), exécuter 'ntpdate -q your_local_ntp_server` devrait répondre avec quelque chose de similaire àserver your_local_ntp_server_ip, stratum 2, offset -0.012221, delay 0.02618
Keith Reynolds

Une réponse par lien uniquement peut être obsolète. Veuillez inclure les informations importantes dans la réponse elle-même.
Zeta

5

Il existe de nombreux liens à ce sujet et il me semble qu'ils compliquent la procédure. Dans mon cas, j'ai une machine qui agit comme un serveur proxy et un pare-feu, et tous mes autres se connectent à Internet via elle. Je ne voulais pas ouvrir de ports sur le pare-feu. Par conséquent , le serveur proxy doit être le temps (PNT) serveur et les autres machines ( clients ) obtenir le temps de celui - ci.

Vous devez installer ntp sur toutes les machines et vous devez également installer ntpq sur chacune d'elles.

Tout d'abord, voyez si ntp fonctionne. Par défaut, ntpd (le démon ntp) s'exécutera dès qu'il sera installé et les valeurs par défaut devraient fonctionner. Cependant, ntp ne fonctionne pas instantanément, alors attendez un peu. Ensuite, la commande:

ntpq -c lpeer

devrait vous donner une sortie qui ressemble à ceci:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+golem.canonical 193.79.237.14    2 u  170 1024  377  140.458   -0.655   3.234
*gatekeeper.tss. 204.123.2.72     2 u  608 1024  377   84.650    2.168   0.471

ou:

ntpq --numeric --peers

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+91.189.89.199   193.79.237.14    2 u  652 1024  377  140.151   -0.242   2.821
*66.7.96.1       204.123.2.72     2 u   64 1024  377   85.074    2.409   0.963

Si c'est le cas, vous êtes connecté et votre serveur de temps obtient l'heure. Sinon, utilisez

ps -e | grep "ntp" 

pour être sûr que ntp est en cours d'exécution, puis réessayez. Essayez également de redémarrer ntp:

sudo /etc/init.d/ntp restart

cela peut prendre un certain temps (désolé!) avant que la connexion ne soit établie. Le démon n'interroge pas les serveurs très souvent. La colonne "quand" dans la sortie ci-dessus montre le temps en secondes depuis que le serveur a été interrogé.

Maintenant, vous devez faire en sorte que le serveur de temps envoie l'heure à vos autres machines.

Modifiez le fichier /etc/ntp.confsur le serveur. Vous devez ajouter une ligne pour votre réseau. Dans mon cas, j'ai un réseau 10.0.0.0. Dans le fichier ntp.conf, j'ai ajouté la ligne:

broadcast 10.255.255.255

Vous devez ajouter une ligne de diffusion pour chaque segment de votre réseau. Si votre réseau est simple comme le mien, une ligne comme celle-ci est tout ce dont vous avez besoin. Maintenant, redémarrez ntp en utilisant la commande ci-dessus et vérifiez à nouveau en utilisant ntpq, et vous devriez voir:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+golem.canonical 193.79.237.14    2 u   70 1024  377  140.151   -0.242   2.821
*gatekeeper.tss. 204.123.2.72     2 u  506 1024  377   84.650    2.168   0.241
 10.255.255.255  .BCST.          16 u    -   64    0    0.000    0.000   0.002

Voila, c'est la diffusion.

Maintenant, vous devez faire en sorte que chaque machine cliente obtienne l'heure de votre serveur de diffusion. Sur chacun, éditez le fichier:

/etc/ntp.conf

et vous verrez quelques lignes spécifiant les serveurs.

ajouter une ligne

server 10.10.10.1

ou quelle que soit l'adresse de votre serveur. Redémarrez ensuite ntp sur la machine cliente à l'aide de la commande ci-dessus. Alternativement, vous pouvez obtenir l'ID de processus et le tuer, puis le réexécuter. Peu importe.

Ensuite, après un temps suffisant, vérifiez avec ntpq:

ntpq --numeric --peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.10.10.1      66.7.96.1        3 u  123 1024  377    0.430    1.022   1.831

et vous pouvez voir que le client utilise le serveur de temps.

Cela prend du temps.


Vous pouvez exécuter ntpdate -s a_stratum_1_server_addressvotre serveur ntp pour le forcer à interroger et à synchroniser immédiatement.
Keith Reynolds

Ce type de diffusion est-il pris en charge par tous les commutateurs? Par exemple, la diffusion UDP est bloquée par la plupart des commutateurs / routeurs.
Tanasis

1

La réponse acceptée (comme pour juillet 2018) n'a pas fonctionné pour moi. Cette autre méthode a bien fonctionné sur Ubuntu 16.04 LTS en juillet 2018:

Installez NTP s'il n'est pas installé:

sudo apt-get update
sudo apt-get install ntp

Modifiez le fichier de configuration pour permettre au service NTP de recevoir des demandes:

sudo nano /etc/ntp.conf --syntax=sh

Décommentez cette ligne:

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
# broadcast 192.168.111.255

à:

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
broadcast 192.168.111.255

Redémarrez le service NTP :

sudo /etc/init.d/ntp restart

Votre serveur NTP doit maintenant fonctionner et permettre à un autre ordinateur de se synchroniser avec le vôtre. N'importe lequel des tests ci-dessus, comme le ntpdate -u YourComputerdevrait fonctionner correctement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.