一.chrony简介
chrony 的优势:
① 更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用。
相对于NTP来说,chrony性能更好
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
② 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
③ 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
④ 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
⑤ 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。
二.chrony
1.安装chrony
两个主要程序:chronyd 和 chronyc
chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作。
服务unit文件: /usr/lib/systemd/system/chronyd.service
监听端口: 323/udp,123/udp
配置文件: /etc/chrony.conf
配置文件解释:
server :指明时间服务器地址,iburst 选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度。
driftfile : 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿。
rtcsync :启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)。
allow NETADD/NETMASK 自己作为ntp服务器,让客户端来同步自己的时间。
allow all:允许所有客户端主机。
deny all:拒绝所有客户端。
cmdallow / cmddeny :可以指定哪台主机可以通过chronyd使用控制命令。
bindcmdaddress : 允许chronyd监听哪个接口来接收由chronyc执行的命令。
makestep : 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个域值时调整系统时钟。
local stratum 10 :即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端。
2.启动 chrony 服务
3.修改配置文件,添加时间源
搭建本地时间同步服务器
服务器配置:
主机配置:
都重新启动服务
模拟测试:
服务器改时间:
客户机调整时间
或者
三 .指令参数含义
##格式
chronyc [OPTION]... [COMMAND]...##查看帮助
chronyc help##显示有多少NTP源在线/离线
[root@localhost ~]# chronyc activity##强制同步系统时间
[root@localhost ~]# chronyc -a makestep#检查是否对特定主机可访问当前服务器
[root@localhost ~]# chronyc accheck 192.168.44.30
208 Access allowed##显示当前时间源的同步信息
[root@localhost ~]# chronyc sources##显示当前时间源的同步统计信息
[root@localhost ~]# chronyc sourcestats##手动添加一台新的NTP服务器
[root@localhost ~]# chronyc add server ntp.fudan.edu.cn #添加一台复旦大学的时间同步服务器
200 OK
[root@localhost ~]# chronyc sources -v##报告已访问本服务的客户端列表
[root@localhost ~]# chronyc clients ##显示系统的时钟性能参数
[root@localhost ~]# chronyc tracking##其它时间相关命令##查看当前系统时区
[root@localhost ~]# timedatectl##查看所有可用的时区:
[root@localhost ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui##查看上海时区:
[root@localhost ~]# timedatectl list-timezones | grep "Asia/Shanghai"
Asia/Shanghai##设置当前系统为Asia/Shanghai上海时区:
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai##修改日期时间:
[root@localhost ~]# timedatectl set-time “2024-01-11 11:11:11”##开启/关闭 NTP:
[root@localhost ~]# timedatectl set-ntp true/flase