Méthode de configuration de l'utilisation de chrony pour la synchronisation de l'heure système sur Ubuntu

 1. Pourquoi la synchronisation de l'heure est nécessaire

Avant de comprendre ce problème, vous devez comprendre les concepts de temps de RTC, CST et UTC.

(1) HTR

Dans le système Linux, nous pouvons également voir un temps RTC, généralement appelé temps matériel. C'est-à-dire qu'il est chronométré par le signal de tic généré par le matériel de la puce d'horloge spéciale sur la carte mère de l'ordinateur.

(2)UTC

Temps universel coordonné, UTC est la norme utilisée par différents pays dans le monde pour unifier le temps. Il peut être compris comme l'heure standard de notre terre, basée sur l'heure atomique de la norme SI, qui est obtenue par le signal de tic généré par une horloge atomique au césium de très haute précision. UTC est l'heure dans le fuseau horaire zéro.

(3)CST

En ce qui concerne le contenu multiple de CST, mais une compréhension simple est l'heure spécifique dans le fuseau horaire de chaque pays.

Central Standard Time (USA) UT-6:00 (US cst time : moins 6 heures dans la zone zéro)

Central Standard Time (Australie) UT+9:30 (Cst australien : plus 9 heures et demie)

Heure normale de la Chine UT+8:00 (Cst chinois : plus 8 heures)

Heure standard de Cuba UT-4:00 (Cuba cst : moins 4 heures).
Par exemple, lorsque l'heure UTC est 0 heure, l'heure chinoise de Pékin correspond au fuseau horaire Est 8, de sorte que l'heure CST de la Chine est 8 heures (UTC temps + 8 heures).

Nous pouvons maintenant expliquer pourquoi la synchronisation de l'heure est nécessaire, car RTC utilise un matériel de puce d'horloge dédié sur la carte mère à l'heure.D'une part, l'heure de démarrage de RTC sur chaque ordinateur est différente, et d'autre part, l'erreur de RTC la précision de synchronisation est relativement grande. Afin d'unifier l'heure de chacun, il est nécessaire de permettre au RTC de se synchroniser avec l'UTC dans un laps de temps. On peut comprendre que lorsque CCTV rapporte l'heure à 8 heures tous les soirs, chacun de nous synchronisera l'heure de ses montres. C'est juste que le cycle de synchronisation dans l'ordinateur est beaucoup plus fréquent, comme une fois toutes les quelques minutes.

Bien que la synchronisation du RTC et de l'UTC puisse résoudre le problème de l'unification de l'heure, cela peut être gênant dans la vie si les gens de toutes les régions du monde utilisent l'heure UTC. Un exemple de la réponse la plus simple est que l'heure de lever du soleil sera différente dans chaque région, ce qui aura un impact important sur les habitudes de vie des gens qui dépendent du lever et du coucher du soleil. Par conséquent, il est nécessaire de convertir UTC à l'heure CST du fuseau horaire spécifique en fonction de l'heure UTC et du fuseau horaire de la région, puis de synchroniser le RTC et le CST.

2. Outils de synchronisation de l'heure couramment utilisés

Un outil de synchronisation horaire est en fait un logiciel qui effectue des requêtes de synchronisation horaire entre ordinateurs. Suivant un ensemble de protocoles, laissez l'ordinateur local initier une demande de synchronisation au serveur distant qui fournit la fonction de synchronisation de l'heure, puis le serveur distant qui fournit la fonction de synchronisation de l'heure renvoie la valeur de l'heure de synchronisation à l'ordinateur local, puis l'ordinateur local utilise la valeur temporelle renvoyée par le serveur pour effectuer certains calculs afin d'obtenir l'heure locale.

Les outils de synchronisation de l'heure actuellement populaires incluent ntp et chrony, ntp utilise le port 123/UDP pour la communication et chrony utilise le port 323/UDP pour la communication. Étant donné que ntp est relativement ancien, chrony est utilisé ici pour la synchronisation de l'heure. Pour installer chrony sur le système ubuntu, exécutez simplement la commande suivante :

sudo apt install chrony

Chrony est divisé en programme serveur chronyd et programme client chronyc. Nous pouvons utiliser chronyd pour fournir des services de synchronisation de l'heure à d'autres ordinateurs, et nous pouvons également utiliser chronyc pour lancer des demandes de synchronisation de l'heure vers d'autres serveurs de synchronisation de l'heure. Les méthodes de configuration du serveur chrony et du client chrony seront présentées tour à tour ci-dessous.

3. Configurer le serveur chrony

Si nous voulons que notre serveur chrony fournisse des services de synchronisation de l'heure pour tous les ordinateurs sur Internet, nous devons exécuter ce serveur chrony sur un serveur de réseau public, généralement en utilisant un serveur cloud (j'ai choisi un serveur Alibaba Cloud ici). Étant donné que chrony utilise le port 323/UDP pour la communication, il est nécessaire d'aller sur la console de notre serveur pour ouvrir l'autorisation d'entrer dans le port 323/UDP du serveur.

Entrez ensuite /etc/chrony/chrony.conf du serveur ubuntu pour configurer le serveur chrony.Ici nous nous concentrons principalement sur plusieurs paramètres :

  • serveur : il est utilisé pour spécifier l'adresse source du serveur de synchronisation de l'heure externe, et n'importe quel nombre d'adresses source peut être ajouté.
  • pool : utilisé pour spécifier le pool de serveurs de synchronisation d'horloge externe.
  • allow : autorise les ordinateurs clients avec des adresses IP spécifiques à envoyer des demandes de synchronisation de l'heure à ce serveur chrony. S'il est défini sur allow all, cela signifie que les ordinateurs clients sur tous les segments du réseau sont autorisés à envoyer des demandes.
  • strate locale : lorsque le serveur de synchronisation de l'heure externe n'est pas disponible, l'heure locale du serveur est utilisée comme valeur de retour à renvoyer à l'ordinateur client demandeur.

Ici, l'adresse source du serveur peut directement utiliser la source fournie par Alibaba Cloud par défaut, comme indiqué ci-dessous :

server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp2.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp2.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp3.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp3.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp4.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp4.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp5.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp5.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp6.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp6.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

Pour faciliter les tests, allow est configuré sur allow all, ce qui signifie que les clients de tous les segments du réseau sont autorisés à envoyer des requêtes :

allow all

Ici, la strate locale 10 est réglée pour permettre à l'heure locale du serveur d'être renvoyée à l'ordinateur client demandeur lorsque le serveur de synchronisation horaire externe n'est pas disponible.

local stratum 10

La méthode de démarrage, d'arrêt et de vérification de l'état du serveur chrony est la suivante :

#启动chrony服务
service chrony start

#重动chrony服务
service chrony restart

#查看chrony服务状态
service chrony status

#停止chrony服务
service chrony stop

4. Configurer le client chrony

Correspondant au client système ubuntu, entrez /etc/chrony/chrony.conf du serveur ubuntu pour configurer le client chrony. Les paramètres de configuration sont similaires à ceux du serveur chrony ci-dessus, sauf que le client n'a pas besoin de fournir des services de synchronisation de l'heure externes mais demande uniquement des données, de sorte que le paramètre allow peut être omis.

Ici, l'adresse source du serveur est spécifiée comme l'adresse IP de notre serveur chrony ci-dessus (vous pouvez vérifier l'adresse IP spécifique dans votre propre console de serveur cloud), vous pouvez remplacer le my_chrony_test.aliyuncs.com suivant par votre propre adresse de serveur, comme indiqué ci-dessous :

server my_chrony_test.aliyuncs.com minpoll 4 maxpoll 10 iburst

La méthode de démarrage, d'arrêt et de vérification de l'état du client chrony est la même que celle du serveur ci-dessus, comme suit :

#启动chrony客户端
service chrony start

#重动chronyd客户端
service chrony restart

#查看chrony客户端
service chrony status

#停止chrony客户端
service chrony stop

Ensuite, il existe des commandes courantes sur le client chrony :

#查看可用的时间同步源
chronyc sources -v

#查看时间同步源的状态
chronyc sourcestats -v

#对客户端系统时间进行强制同步
chronyc -a makestep

Utilisez timedatectl pour gérer l'heure système locale :

#修改本地系统时间
timedatectl set-time "2022-03-01 10:01:01"

#查看时区列表
timedatectl list-timezones
timedatectl list-timezones |grep Asia/S

#修改时区
timedatectl set-timezone Asia/Shanghai

#让RTC去和UTC进行同步
timedatectl set-local-rtc 0
#让RTC去和本地系统时间CST进行同步(不推荐)
timedatectl set-local-rtc 1

#启用向外部时间同步服务器发起同步的功能
timedatectl set-ntp yes
#关闭向外部时间同步服务器发起同步的功能
timedatectl set-ntp no
 

5. Résumé

En supposant que l'ordinateur client local s'appelle A, que notre ordinateur serveur s'appelle B et que l'ordinateur source de synchronisation de l'heure du réseau externe s'appelle C, le processus de synchronisation de l'heure est en fait A-> B-> C->...

A initie une demande de synchronisation temporelle à B pour maintenir l'heure de A et de B cohérente ;

Afin de maintenir sa propre heure système, B initie une demande de synchronisation temporelle à C de la même manière, de sorte que les heures de B et C soient cohérentes ;

C peut avoir besoin de se synchroniser davantage avec d'autres sources de synchronisation de l'heure du réseau externe. En bref, la synchronisation de l'heure est effectuée couche par couche.

Je suppose que tu aimes

Origine blog.csdn.net/m0_68732180/article/details/130251743
conseillé
Classement