1.1chrony的简单介绍
Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
Chrony由两个程序组成,分别是chronyd和chronyc
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
RHEL7中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。
NTP与chrony不能同时存在,只能用其中一个
1.2安装与配置
#yum -y install chrony
#systemctl enable chronyd
#systemctl start chronyd
Chrony的配置文件是/etc/chrony.conf
# 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org 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.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
1.3同步网络时间服务器
授时中心
210.72.145.44 国家授时中心
ntp.sjtu.edu.cn 202.120.2.101 上海交通大学
chrony.conf 修改两处
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server s1a.time.edu.cn iburst
server ntp.aliyun.com iburst
# Allow NTP client access from local network.
设置开机启动,重启服务
systemctl enable chronyd
systemctl restart chronyd
# 查看时间同步状态
timedatectl status
# 开启网络时间同步
timedatectl set-ntp true
1.4 配置时间服务器
chrony.conf 修改两处
allow 192.168.143.0/24
local stratum 10
设置开机启动,重启服务
systemctl enable chronyd
systemctl restart chronyd
客户端主机查看时间同步状态
vim /etc/chrony.conf
server 192.168.143.111
systemctl restart chronyd
#timedatectl status
开启网络时间同步
timedatectl set-ntp true
1.5 chronyc 命令
查看 ntp_servers
chronyc sources -v
查看 ntp_servers 状态
chronyc sourcestats -v
查看 ntp_servers 是否在线
chronyc activity -v
查看 ntp 详细信息
chronyc tracking -v
强制同步下系统时钟
chronyc -a makestep
1.6练习
a: 第一台机器从阿里云同步时间
第二台机器从第一台机器同步时间
b: 第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6,
a.第一台机器
打开chrony服务器配置文件
进入/etc/chrony.conf文件
vim /etc/chrony.conf
对/etc/chrony.conf的文件内容进行添加
如下方红色字体
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
pool 2.centos.pool.ntp.org iburst
server ntp.aliyun.com iburst //阿里云授时服务器
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
......
第二台机器
进入/etc/chrony.conf文件
vim /etc/chrony.conf
对/etc/chrony.conf的文件内容进行添加
如下方红色字体
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.rhel.pool.ntp.org iburst
server 192.168.25.138 iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
重启服务:

查看
第一台机器


第二台机器

b
两台机器进入/etc/chrony.conf文件
vim /etc/chrony.conf
进入文件后修改红色字体部分
# Serve time even if not synchronized to a time source.
local stratum 6
在第二台机器上查看
[root@node1 ~]# chronyc tracking
Reference ID : C0A8198A (192.168.25.138)
Stratum : 7 //第一台机器的层数为6,则来到第二台就+1
Ref time (UTC) : Thu Jan 05 13:25:46 2023
System time : 0.000456727 seconds slow of NTP time
Last offset : -0.000529833 seconds
RMS offset : 0.000635103 seconds
Frequency : 2.840 ppm slow
Residual freq : -0.529 ppm
Skew : 10.166 ppm
Root delay : 0.000889935 seconds
Root dispersion : 0.000300327 seconds
Update interval : 64.3 seconds
Leap status : Normal