文章目录
一、chrony服务器介绍
①Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
②Chrony由两个程序组成,分别是chronyd和chronyc
③chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
④chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
二、安装与配置
首先检查主机上有没有chrony软件包
rpm -qa | grep chrony
若没有该软件包则需要装包
yum -y install chrony
Chrony的配置文件是/etc/chrony.conf
使用 pool.ntp.org 项目中的公共服务器。以server开头,理论上想添加多少时间服务器都可以。
例如:
server s1a.time.edu.cn iburst
server ntp.aliyun.com iburst
Chrony的配置文件详解:
# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。 driftfile /var/lib/chrony/drift # 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。 # Allow the system clock to be stepped in the first three updates if its offset is larger than 1 second. makestep 1.0 3 # 启用实时时钟(RTC)的内核同步。 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # 通过使用 hwtimestamp 指令启用硬件时间戳 # Enable hardware timestamping on all interfaces that support it. #hwtimestamp * # Increase the minimum number of selectable sources required to adjust the system clock. #minsources 2 # 指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器 # Allow NTP client access from local network. #allow 192.168.0.0/16 # Serve time even if not synchronized to a time source. #local stratum 10 # 指定包含 NTP 身份验证密钥的文件。 # Specify file containing keys for NTP authentication. #keyfile /etc/chrony.keys # 指定日志文件的目录。 # Specify directory for log files. logdir /var/log/chrony # 选择日志文件要记录的信息。 # Select which information is logged. #log measurements statistics tracking
常见的网络时间服务器
210.72.145.44 国家授时中心
ntp.aliyun.com 阿里云
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2c.time.edu.cn 北京邮电大学
s2d.time.edu.cn 西南地区网络中心
s2e.time.edu.cn 西北地区网络中心
s2f.time.edu.cn 东北地区网络中心
s2g.time.edu.cn 华东南地区网络中心
s2h.time.edu.cn 四川大学网络管理中心
s2j.time.edu.cn 大连理工大学网络中心
s2m.time.edu.cn 北京大学
ntp.sjtu.edu.cn 202.120.2.101 上海交通大学
三、chrony服务部署
第一类:
有两台机器
第一台机器从阿里云同步时间
第二台机器从第一台机器同步时间
步骤:
第一台机器上
①启动chrony服务,向配置文件中写入阿里云时间服务器,并允许两台机器所在的网段进行访问
systemctl start chronyd
vim /etc/chrony.conf #打开chrony配置文件 server ntp.aliyun.com iburst #阿里云时间服务器作为第一台主机的时间服务器 allow 192.168.15.0/24 #两台机器所在的网段
②重启chrony服务
systemctl restart chronyd
③查看 ntp_servers
chronyc sources -v
图片中红色标记部分指示源的状态。
* 表示chronyd当前同步到的源。
+ 表示可接受的信号源,与选定的信号源组合在一起。
- 表示被合并算法排除的可接受源。
? 指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止。
x 表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)。
〜 表示时间似乎具有太多可变性的来源。
第一台机器的信号源为 * 表明chronyd已经同步到阿里云时间服务器
④查看 ntp 详细信息
Stratum
这显示了来源的层,如其最近收到的样本中所报告的那样。层1表示一台具有本地连接的参考时钟的计算机。与第1层计算机同步的计算机位于第2层。与第2层计算机同步的计算机位于第3层,依此类推。
第二台机器上
①启动chrony服务,向配置文件中写入第一台机器的ip地址作为第二台机器的时间服务器
systemctl start chronyd vim /etc/chrony.conf server 192.168.15.130 iburst
②重启chrony服务并查看 ntp 详细信息
[root@qingyuxin ~]# systemctl restart chronyd [root@qingyuxin ~]# chronyc tracking -v
Stratum 的值为4说明该机器是从第一台机器上同步的时间。
第二类:
两台机器
第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6。
步骤:
第一台机器上
①打开chrony配置文件,将其恢复为初始状态;
将不存在的ip作为第一台机器的时间服务器,即同步不了的ip;
修改服务器层级设置为6(当不能从外部同步时间的时候,使用本地系统时间作为时钟源提供其他的客户端);
开放两台机器所在的网段。
server 192.168.16.1 #将不存在的ip作为第一台机器的时间服务器,即同步不了的ip allow 192.168.15.0/24 #开放两台机器所在的网段 local stratum 6 #修改服务器层级设置为6
②重启chrony服务
systemctl restart chronyd
③查看ntp详细信息
第一台机器的服务器层级为6,设置成功!
第二台机器上
①在配置文件中写入第一台机器的ip地址作为第二台机器的时间服务器
②查看 ntp_servers
chronyc sources -v
表示已经将第一台机器作为时间服务器
③查看ntp的详细信息
chrony服务部署成功!
四、chronyc 的常见命令
查看 ntp_servers
chronyc sources -v
查看 ntp_servers 状态
chronyc sourcestats -v
查看 ntp_servers 是否在线
chronyc activity -v
查看 ntp 详细信息
chronyc tracking -v
强制同步下系统时钟
chronyc -a makestep
五、chronyc sources 输出结果解析
M
这表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟。
S指示源的状态
Name/IP address显示了源的名称或IP地址,或参考时钟的参考ID。
Stratum
这显示了来源的层,如其最近收到的样本中所报告的那样。层1表示一台具有本地连接的参考时钟的计算机。与第1层计算机同步的计算机位于第2层。与第2层计算机同步的计算机位于第3层,依此类推。
Poll
这显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为6表示每64秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。
Reach
这显示了源的可达性寄存器以八进制数字打印。寄存器有8位,并在每个从源接收或丢失的数据包上更新。值377表示从最后八次传输中收到了对所有用户的有效答复。
LastRx
此列显示多长时间前从来源接收到了最后一个好的样本(在下一列中显示)。未通过某些测试的测量将被忽略。通常以秒为单位。字母m,h,d或y表示分钟,小时,天或年。
Last sample
此列显示上次测量时本地时钟与源之间的偏移。方括号中的数字表示实际测得的偏移量。可以用ns(表示纳秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。
**+/-**指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。