一、简介
NTP
是网络时间协议(
Network Time Protocol
)的简称,通过
udp 123
端口进行网络时钟同步。
Chrony
是一个开源自由的网络时间协议
NTP
的客户端和服务器软件。它能让计算机保持系统时钟与时
钟服务器(
NTP
)同步,因此让你的计算机保持精确的时间,
Chrony
也可以作为服务端软件为其他计算
机提供时间同步服务。
Chrony
由两个程序组成,分别是
chronyd
和
chronyc
。
chronyd
是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算
机增减时间的比率,并对此进行补偿。
chronyc
提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在
chronyd
实例控制的计算机
上工作,也可以在一台不同的远程计算机上工作。
二、软件安装
1.设置当前时区
[root@client ~]# timedatectl set-timezone Asia/Shanghai
2.安装chrony
[root@client ~]# yum install -y chrony
3.启动chrony
[root@client ~]# systemctl enable --now chronyd
三、通过两台虚拟机模拟配置时间服务器
1.服务器端配置(IP:192.168.36.136)
#关闭防火墙
[root@service ~]# systemctl disable --now firewalld
#修改/etc/chrony.conf文件中allow中允许通过的用户IP
[root@service ~]# vim /etc/chrony.conf
#修改内容如下
[root@service ~]# grep allow /etc/chrony.conf
allow 192.168.36.30/24
#重启服务
[root@service ~]# systemctl restart chronyd
2.客户端配置(IP:192.168.36.30)
#修改文件/etc/chrony.conf中的时间服务器的服务端名字
[root@client ~]# vim /etc/chrony.conf
[root@client ~]# grep pool /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
#pool 2.centos.pool.ntp.org iburst
pool 192.168.36.136 iburst
#客户端访问服务端,ping时间服务器
[root@client ~]# ping 192.168.36.136
PING 192.168.36.136 (192.168.36.136) 56(84) 比特的数据。
64 比特,来自 192.168.36.136: icmp_seq=1 ttl=64 时间=0.400 毫秒
64 比特,来自 192.168.36.136: icmp_seq=2 ttl=64 时间=0.409 毫秒
64 比特,来自 192.168.36.136: icmp_seq=3 ttl=64 时间=0.477 毫秒
64 比特,来自 192.168.36.136: icmp_seq=4 ttl=64 时间=0.443 毫秒
#重启服务
[root@client ~]# systemctl restart chronyd
#查看时间服务器是否能使用
[root@client ~]# chronyc sources
时间服务器配置成功!
3.每周一八点向时间服务器同步当前主机的时间
[root@service ~]# grep ^pool /etc/chrony.conf
pool 2.centos.pool.ntp.org iburst
pool ntp.aliyun.com iburst
pool pool.ntp.org iburst
pool ntp.tencent.com iburst
[root@service ~]# systemctl enable --now chronyd
[root@service ~]# crontab -e
crontab: installing new crontab
[root@service ~]# grep chronyc /etc/crontab
[root@service ~]# crontab -l
0 9 * * * wall "good morning"
0 8 */7 * 1 root chronyc sources &> /dev/null