前言
Chrony 是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计
算机保持系统时钟与时钟服务器( NTP )同步,因此让你的计算机保持精确的时
间, Chrony 也可以作为服务端软件为其他计算机提供时间同步服务。
此次我们利用Chrony完成以下操作:
a: 第一台机器从阿里云同步时间, 第二台机器从第一台机器同步时间;
b: 第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6;
一、Chrony是什么?
Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
Chrony由两个程序组成,分别是chronyd和chronyc
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
RHEL7中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。
NTP与chrony不能同时存在,只能用其中一个,并将另一个mask掉。
二、安装配置
1.安装Chrony
#yum -y install chrony
#systemctl enable chronyd
#systemctl start chronyd
2.配置
本次目标:
a: 第一台机器从阿里云同步时间, 第二台机器从第一台机器同步时间;
b: 第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6;
服务端配置
Chrony的配置文件是/etc/chrony.conf,通过vim进行编译
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.
allow all
添加阿里云同步时间网站,添加 allow all ,这样可以使第二个主机被允许与其同步
设置开机启动,重启服务
systemctl enable chronyd
systemctl restart chronyd
# 查看时间同步状态
timedatectl status
# 开启网络时间同步
timedatectl set-ntp true
这里要求第二个主机(客户)要连接第一个主机,即与第一个主机时间同步,我们还是进行配置/etc/chrony.conf文件
客户端配置
chrony.conf 修改两处
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 192.168.145.110 iburst
# Allow NTP client access from local network.
allow all
我们将ip地址改为第一个主机的ip,这样即可连接第一个主机,并且进行时间同步。然后我们进行检验,是否连接成功。
成功之后将第一个主机变为系统时间同步,同样的操作。vim配置/etc/chrony.conf文件
我们通过在前面添加#进行注释,以及在第二个箭头位置将注释符删除,因为要求将层级改为6,那么我们将原来的10也就改为6,然后wq保存退出。
设置开机启动,重启服务
systemctl enable chronyd
systemctl restart chronyd
查看时间同步状态
timedatectl status
开启网络时间同步
timedatectl set-ntp true
三、Chronyc 命令
查看 ntp_servers
chronyc sources -v
查看 ntp_servers 状态
chronyc sourcestats -v
查看 ntp_servers 是否在线
chronyc activity -v
查看 ntp 详细信息
chronyc tracking -v
强制同步下系统时钟
chronyc -a makestep
四、timedatectl 命令
查看日期时间、时区及 NTP 状态
timedatectl
查看时区列表
timedatectl list-timezones
timedatectl list-timezones | grep -E "Asia/S.*"
修改时区
timedatectl set-timezone Asia/Shanghai
修改日期时间(可以只修改其中一个)
timedatectl set-time "2023-01-08 18:40:26"
开启 NTP
timedatectl set-ntp true/flase