1、chrony介绍
Chrony是NTP(Network Time Protocol,网络时间协议,服务器时间同步的一种协议)的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。
在CentOS6中,默认是使用ntpd来同步时间的,但ntpd同步时间并不理想,有可能需要数小时来同步时间。而且ntp也已经很老了。所以在Centos7中换成了chrony来实现时间同步。
chrony并且兼容ntpd监听在udp123端口上,自己则监听在udp的323端口上。
如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。一般我们只需要做客户端就好,不需要对外提供时间同步功能。
chrony是两个用来维持计算机系统时钟准确性的程序,这两个程序命名为chronyd和chronyc。
chronyd是一个在系统后台运行的守护进程。主要用于调整内核中运行的系统时间和时间服务器同步,他根据网络上其他时间服务器时间来测量本机时间的偏移量从而调整系统时钟。对于孤立系统,用户可以手动周期性的输入正确时间(通过chronyc)。在这两种情况下,chronyd决定计算机快慢的比例,并加以纠正。chronyd实现了NTP协议并且可以作为服务器或客户端。
chronyc是用来监控chronyd性能和配置其参数的用户界面。他可以控制本机及其他计算机上运行的chronyd进程。
服务unit文件: /usr/lib/systemd/system/chronyd.service
监听端口: 323/udp,123/udp
配置文件: /etc/chrony.conf
chrony 的优势:
更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用
能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟
chrony官网:https://chrony.tuxfamily.org
chrony官方文档:https://chrony.tuxfamily.org/documentation.html
chrony 用于取代原Centos 6 的ntpd服务,它即可以充当客户端,也可以充当服务端。
2、搭建chrony时间服务器
搭建1台NTP时间服务器,为整个网络环境中的所有主机提供时间校准服务,具体要求如下:
【1】部署1台NTP时间服务器
【2】设置时间服务器上层与0.centos.pool.ntp.org同步
【3】设置本地服务器层级数量为10
【4】允许192.168.4.0/24网络的主机同步时间
【5】客户端验证时间是否同步
NTP(网络时间协议)采用的是分层设计,Stratum层的总数限制在 15以内(包括15)。
部署NTP服务:
# yum install chrony #服务器和客户端都是同一个包
配置NTP服务:
# vim /etc/chrony.conf server ntp.aliyun.com iburst #同步上游的时间服务器,iburst表示尽快同步时间 allow 192.168.0.0/16 #充当NTP时间服务器,会监听在udp 123端口,表示允许:192.168.0.0/16 这个网段的服务器来同步时间 deny 192.168.4.1 #拒绝:192.168.4.1的客户端来同步时间 local stratum 10 #表示本地服务器的层级,不超过15层,就表示是合理的
重启服务:
# systemctl restart chronyd
# systemctl enable chronyd
3、配置客户端同步服务
时间同步服务
1、NTP网络时间协议
2、配置chronyd校时服务
2、测试校时服务
NTP->NTP服务器为客户机提供标准时间,NTP客户机需要与NTP服务器保持沟通
RHEL 7 客户端的校时服务:
软件包:chrony
配置文件:/etc/chrony.conf
系统服务:chronyd
客户安装chrony包:
# yum install chrony
修改配置文件:
# vim /etc/chrony.conf #server 0.centos.pool.ntp.org iburst #修改成自己的ntp服务器,iburst表示尽快同步时间,同可同时添加多个 #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst server classroom.example.com iburst
重户客户端服务:
# systemctl restart chronyd
# systemctl enable chronyd #开启自启动
验证:
# date -s '2008-10-1 10:10:10' #改错时间 # systemctl restart chronyd #重启,会自动同步,但并不是立即,会有5秒的时间 # chronyc sources -v #查看当前系统的时间同步源信息 # chronyc sourcestats #查看当前系统的时间同步源状态信息 # chronyc -a makestep #手工进行同步
也可以使用命令:timedatectl 查看当时NTP状况,如下图所示:
至此,时间服务器配置完毕!