Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
Chrony由两个程序组成,分别是chronyd和chronyc
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
RHEL7中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。
NTP与chrony不能同时存在,只能用其中一个。
安装与相关配置:
yum -y install chrony
systemctl enable chronyd
systemctl start chronyd
安装好之后查看下当前状态:
我们打开我们的配置文件,查看下相关配置文件:
# 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。
server ntp.aliyun.com iburst
# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
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.26.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
1、chrony服务部署:两台机器
a: 第一台机器从阿里云同步时间
第二台机器从第一台机器同步时间
第一台机器:
配置完之后,我们重启服务,并查看服务状态:
查看时间同步状态:
timedatectl status
# 开启网络时间同步
timedatectl set-ntp true
查看 ntp_servers
chronyc sources -v
查看 ntp 详细信息
chronyc tracking -v
第二台只需要配置服务器,server为第一台的IP地址:
b: 第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6,
场合利用:这种是针对于无法上外网或者以公司的一台设备为主,来同步时间的;
第一台服务器设置:
第二台设备:
第二台设备配置和第一次设置的为一样,这里重启下:
配置:server ip iburst
# allow:默认情况下不允许任何ntp客户端访问
allow 192.168.233.xxx1.配置完成之后,重启服务,如果遇到问题:配置错误
2.但是使用timedatectl,或者chronyc sources 查看^?: unreachable: 不通
a. server配置成ntp.aliyun.com,重启服务试一下,是否能正常同步
b. 如果能正常同步说明:配置没有问题
c. 排查网络:1.确保防火墙关闭的,selinux是permissive或者disable的状态
2. ping 一下,确保链路是通的
3. 去检查一下网络配置