Linux的时间同步服务器
一、时间同步服务
时间同步:多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故 障,如:加密协议,日志,集群等,利用NTP(Network Time Protocol )协议使网络中的各个计算机 时间达到同步。目前NTP协议属于运维基础架构中必备的基本服务之一
时间同步实现:ntp,chrony
ntp:将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精 度可以达到1-50ms,项目官网:http://www.ntp.org
chrony : 实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及 使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络 中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接, 温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步 的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬 件参考时钟,可实现亚微秒的精度
二、时间同步服务的使用
1.系统时间及时区的管理
timedatectl set-time "2024-02-13 10:41:55" ##设定系统时间
timedatectl list-timezones ##显示系统的所有时区
timedatectl set-timezone "Asia/Shanghai" ##设定系统时区
timedatectl set-local-rtc 0|1 ##设定系统时间计算方式
##0表示使用utc时间计算方式
2.公共ntp地址
2.1www.ntppool.org : 项目是一个提供可靠易用的NTP服务的虚拟集群,[0-3].asia.pool.ntp.org
2.2阿里云公共NTP服务器
Unix/linux类: ntp.aliyun.com,ntp1-7.aliyun.com
windows类: time.pool.aliyun.com
国家授时中心服务器:ntp.ntsc.ac.cn
3.使用公共ntp时间到本机
在RHEL 9 中使用的同步时间软件为chrony
chrony由两个程序组成,分别是chronyd和chronyc。
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定 计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计 算机上工作,也可以在一台不同的远程计算机上工作
chrony作为client使用方法如下:
]# dnf install chrony –y
]# vim /etc/chrony.conf
server ntp.ntsc.ac.cn iburst
#server 指定时钟服务器地址 #iburst 当服务器可达时,发送一个八个数据包 #包间隔通常为2秒,可加快初始同步速度
4.显示同步信息
在RHEL9中我们可以使用chronyc 来查看时间同步情况
]# chronyc sources –v
M:时间源模式 ^表示服务器,=表示对等方,#表示本地连接的参考时钟
S:指源的状态
表示chronyd当前已经同步到的源。
+ 表示可接受的信号源,与选定的信号源组合在一起。
表示被合并算法排除的可接受源
? 指已失去连接性或者其数据包未通过所有测试的源。
x 表示chronyd认为时虚假行情的时钟,即标记该时间与其他多数时间不一致
~ 表示时间似乎具有太多可变性
Name/IP address:显示源的名称或IP地址
Stratum:显示时间来源的层
Poll:显示轮询源的速率
Reach:显示源的可达性寄存器以八进制数字打印
LastRx:显示多长时间前从来源接收到了最后一个好的样本
Last sample:此列显示上次测量时本地时钟与源之间的偏移
5.时间同步服务器的搭建
在RHEL9中ntp的服务端同样默认使用chrony
chrony使用端口为udp 323,chrony兼容ntp所以在设定chrony为服务端是也会开启udp的123端口
chrony 的优势: 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天24小时 运行的虚拟计算机而言非常有用 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技 术而言非常有用 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟
chrony的参数说明:
server #可用于时钟服务器,
iburst #选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包
#包间隔通常为2秒,可加快初始同步速度
driftfile #根据实际时间计算出计算机增减时间的比率
#将它记录到一个文件会在重启后为系统时钟作出补偿
rtcsync #启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
allow / deny #指定一台主机、子网,或者网络以允许或拒绝访问本服务器
bindcmdaddress #允许chronyd监听哪个接口来接收由chronyc执行的命令
local stratum 10 #即使server指令中时间服务器不可用
#也允许将本地时间作为标准时间授时给其它客户端
修改配置文件
]# vim /etc/chrony.conf
27 allow 0.0.0.0/0
30 local stratum 10
三、实验
1.系统时间的调整方法
首先是查看系统时间(比较全)
然后我们要将ntp协议关闭才能改时间
然后我们依然去监控时间
然后我们可以去改时间,当改了时间后,时间就不同步了
然后我们可以去改时区,先是列出可改时区,在选择改的时区
我们可以将硬件时间改为本地时间
2.如何同步网络时间
我们可以使用公共的ntp地址来进行数据同步,我们可以使用国家授时中心服务器的,先尝试是否能ping通,若能ping通,则可以使用,我们先编辑
在这里修改
然后重启来开启服务
3.部署时间同步服务器
我们需要用到两台主机,分别为1和2,我们将1作为服务端,将2作为客户端,首先我们依然在1中这里面改
然后进行编辑
然后进行重启,此时你是时间源
此时转换为主机2,改时间
然后我们同步时间,重启
然后服务器端关闭火墙,这里的话是主机1,时间就同步了