【学习笔记】NTP服务客户端配置
【学习笔记】NTP服务客户端配置
需要实现客户端的时间改变之后,尽快进行时间同步,不需要步进同步,一下子大步同步就可以。
主要的配置选项:配置文件 /etc/chrony.conf
server 192.168.0.115 iburst prefer minpoll 2 maxpoll 2makestep 0.1 -1
maxslewrate 0 rtcsync
driftfile /var/lib/chrony/drift
主备切换的时候需要修改IP即可。
配置解释:
1、server 192.168.0.115 iburst prefer
连接服务器主要配置,server后面跟服务器IP。
iburst
是一个优化参数,作用是:在 chronyd
启动或与该服务器重新建立连接时,短时间内快速发送 8 个 NTP 请求(默认间隔约 2 秒),而非默认的单个请求。
- 效果:通常 NTP 同步需要多次通信才能稳定,
iburst
能通过 “批量请求” 快速获取可靠的时间数据,大幅缩短初始同步的耗时(从几分钟缩短到几秒)。 - 适用场景:特别适合需要快速完成时间校准的场景(如系统启动后、网络恢复后)。
prefer
用于将该服务器标记为 “优先时间源”。当配置了多个 NTP 服务器时:
chronyd
会优先选择标记prefer
的服务器作为主要同步源(即使其他服务器的层级或稳定性略好);- 只有当该优先服务器不可达或出现异常时,
chronyd
才会切换到其他备用服务器。
2、minpoll 2 maxpoll 2
minpoll
和 maxpoll
是 chronyd
中用于控制与 NTP 服务器同步时间的间隔范围的核心参数,它们的值表示 “2 的 n 次方秒”(即同步间隔 = 2^n 秒)。
minpoll
:限制 “最小同步间隔”,避免过于频繁地向服务器发送请求(防止网络和服务器负载过高)。maxpoll
:限制 “最大同步间隔”,确保时间不会因太久不同步而产生过大偏差。
3、makestep 0.1 -1
控制 chronyd 在系统时间与参考时间(NTP 服务器时间)偏差较大时,是否允许 “大步调整”(step adjustment)而非缓慢 “ slew 调整”(平滑微调)。
第一个值 0.1:表示 “偏差阈值”(单位:秒)。当系统时间与参考时间的偏差超过 0.1 秒时,触发大步调整。
第二个值 1:表示 “时间窗口”(单位:秒)。仅在 chronyd 启动后的 1 秒内,允许执行上述大步调整。超过这个时间窗口后,即使偏差超过 0.1 秒,也不再使用大步调整,而是采用 slew 方式缓慢修正。-1表示任意时间。
4、maxslewrate 0
限制 chronyd 对系统时间的 “最大平滑调整速率”(slew rate),单位为 “秒 / 秒”(即每秒最多调整多少秒)。值 0 表示将最大平滑调整速率设置为 0,即完全禁用 “slew 平滑调整” 功能
5、rtcsync
rtcsync
是 chronyd
配置中用于自动同步系统时间到硬件时钟(RTC) 的参数,其核心作用是确保系统重启后,硬件时钟(RTC)能保持较准确的时间。
时间同步测试:
1、验证客户端和服务器4s同步时间
客户端:tcpdump -i any udp port 123 -n -c 10
服务端:sudo tcpdump -i any udp port 123 -n -vv
可以看见服务器每过四秒就会收到客户端的请求并且回包。
2、客户端修改时间验证同步
修改客户端时间:date -s “+60 seconds” date -s “2026-08-15 16:30:00”
修改客户端时间:date -s “-60 seconds” date -s “2024-08-15 16:30:00”
查看客户端实时时间变化:watch -n 0.5 chronyc tracking
查看服务器实时时间变化: watch -n 1 date
可以看见客户端时间四秒左右就会恢复和服务器时间一致。验证成功。