NTP时钟同步服务chrony详解(理论+实操、值得收藏)

科技   2024-10-08 07:31   广东  

1.时间同步基本概念

1.1 NTP网络时间协议介绍

网络时间协议(NTP)是一种用于同步网络中计算机时间的协议。NTP可以使计算机客户端与服务器的时间进行同步,以确保时间的准确性。

1.2 为什么需要时间同步

在企业生产环境中,时间同步对于许多应用程序和系统操作都至关重要。主要有以下几个重要场景:

(1)日志记录:确保所有设备上的日志条目都带有正确的时间戳,以便于事件的追踪和分析。

(2)集群系统环境:在集群系统环境中,时间同步确保了跨多个服务器或节点的事件可以正确地顺序化和关联。

(3)数据一致性:在分布式数据库和文件系统中,时间同步确保了事务和事件可以按照正确的顺序记录和处理。

(4)网络安全:许多安全协议依赖于时间戳来识别和防止攻击

(5)用户体验:在用户交互和应用程序中,时间同步有助于提供一致和预期的用户体验。

1.3 时间同步方法

(1)购买商用的卫星同步时钟服务器,可以提供更精确的时间,可以通过GPS或北斗同步时间

(2)使用chrony或ntp开源软件当做时钟源,供其他客户端来同步时间

1.4 Chrony介绍

Chrony(Chronos Network Time)是一个开源的时间同步工具,提供了更快的同步速度和更高的精度。它既可以当做服务端,也可以充当客户端

1、chrony 是 NTP 的替代品,能更精确的时间和更快的速度同步时钟;

2、chrony 占用系统资源少,只有被唤起时才占用少部分CPU,chrony兼容ntpdate;

3、Chrony特别适合于网络连接不稳定的环境,因为它能够在间歇性连接的情况下仍然保持较好的时间同步。

2.服务器端部署Chrony

2.1 准备环境

使用一台RockyLinux操作系统做服务器端,也就是时钟源,其他客户端可以是Linux或Windows

角色IP地址操作系统
服务器端10.10.10.200Rocky Linux release 9.1
客户端10.10.10.100CentOS Linux release 7.9.2009 (Core)

2.2 安装chrony

# 安装
[root@server ~]yum install -y chrony
# 查看安装包信息
[root@server ~]rpm -qa chrony
chrony-4.2-1.el9.rocky.1.0.x86_64

2.3 chrony配置文件详解

Chrony服务的配置文件通常位于/etc/chrony.conf。这个文件控制着Chrony守护进程的各种设置,包括指定NTP服务器、调整时钟的参数、日志记录等。

以下是配置文件各个参数的详细解析

# pool: 有些Linux发行版本为server,指定一个或多个NTP服务器地址或服务器池
# iburst参数表示在初始同步时加快同步速度。
pool 2.rocky.pool.ntp.org iburst

# 指定存储时钟漂移数据的文件路径。
driftfile /var/lib/chrony/drift

# 控制在系统时钟偏差较大时是否允许立即步进调整。
makestep 1.0 3

# 启用内核同步实时时钟(RTC)
rtcsync

#增加调整所需的可选择源的最小数量
#minsources 2

# 指定允许访问NTP服务的客户端地址范围,可以根据实际情况来修改。
allow 10.10.10.0/24

# 设置本地时间服务器的层次(stratum)级别。
# 开启此选项,则表示允许接受不精确时间,继续为客户端提供授时服务;
local stratum 10

# 指定包含NTP认证密钥的文件,用于NTP认证。
keyfile /etc/chrony.keys

# 保存NTS密钥和Cookie
ntsdumpdir /var/lib/chrony

# 通过摆动而不是跳跃来添加/删除闰秒。
#leapsecmode slew

# 从系统时区数据库获取TAI-UTC偏移量和闰秒信息。
leapsectz right/UTC

# 指定日志文件存储的目录。
logdir /var/log/chrony

# 指定要记录的信息类型,例如测量、统计和跟踪信息。
#log measurements statistics tracking

2.4 配置成同步时钟源

(1)修改配置文件如果想将服务器变成同步时钟源的话,需要修改配置文件的三处地方,分别是:pool,allow,local

[root@server ~]vi /etc/chrony.conf
# 使用本机作为服务器端
pool 10.10.10.200 iburst

# 允许同步的客户端网段,如果不设置,默认全部开放
allow 10.10.10.0/24

# 允许无网环境继续同步客户端时间
local stratum 10

(2)重启chrony服务

systemctl restart chronyd

(3)设置开机自启动

systemctl enable chronyd

3.客户端使用Chrony

3.1 安装chrony

客户端需要同步服务器端的时钟也需要安装chrony软件

[root@client ~]yum install -y chrony

3.2 修改配置文件

只需要修改配置文件的Pool参数,指向服务器端的IP地址,由于我客户端是CentOS7.9,配置参数为server.

【温馨提示】有些企业有商用的卫星时钟同步服务器,配置客户端的方法也是一样的,只需要将pool或server参数指定时钟源IP地址即可

[root@client ~]vi /etc/chrony.conf
server 10.10.10.200 iburst

3.3 重启生效并查看同步状态

# 重启chrony
systemctl restart chronyd 

# 查看同步状态
[root@client ~]#chronyc sources 
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 10.10.10.200                 10   6     7     1    +50us[ +106us] +/-  373us

可以看到已经同步成功。在服务器端使用chronyc clients命令就可以看到客户端信息了

3.4 常用操作命令汇总

(1)启动/停止/重启

# 启动
systemctl start chronyd
# 停止
systemctl stop chronyd
# 重启
systemctl restart chronyd

(2)查看状态

systemctl status chronyd

(3)设置开机自启动/不启动

# 设置开机自启动
systemctl enable chronyd
# 设置开机不启动
systemctl disable chronyd

(4)查看当前时间同步状态

chronyc tracking

(5)查看时钟源状态

chronyc sources
 # 加-v,列出更详细信息
 chronyc sources -v

(6)手动强制同步时钟源

chronyc makestep

(7)查看客户端列表

一般在服务器端执行,查看有哪些客户端来同步

chronyc clients

3.5  相关的故障排查

如果Chrony服务无法正常工作,你可以检查以下几个方面:

(1)网络连接:确保系统可以访问配置的NTP服务器。

(2)防火墙设置:确保NTP端口(通常是123/UDP)没有被防火墙阻止。

(3)配置文件:检查/etc/chrony.conf文件中的配置是否正确。

(4)系统时间:如果系统时间偏差过大,可能需要手动调整或使用chronyc makestep命令强制同步。


结论

Linux系统时钟同步服务是确保系统可靠性和安全性的关键组件。Chrony提供了一种高效、准确的方法来同步系统时间,特别适合于网络环境复杂或连接不稳定的场景。通过合理配置和管理,Chrony可以帮助你保持系统时间的精确和一致。


欢迎转发    关注

点亮下方“在看”图标让更多的人看到


本篇关于时钟同步服务chrony的知识分享完结!感谢你的阅读,如果有错误之处,敬请指出;后期将持续会为大家分享更多优质的内容!一同成长!!


运维李哥不背锅
专注于各种运维技术、,分享Linux基础知识,服务器,数据库,云原生和网络安全等相关技术,各种进阶知识等着你,助你成为技术达人!
 最新文章