NTP(Network Time Protocol)服务是一种用于在计算机网络中同步时钟的协议和服务。
NTP 服务通过网络连接使不同设备的时钟保持精确同步,确保网络中各个设备的时间一致性,其精度通常可以达到毫秒级甚至更高。
NTP 使用分层的时间同步架构,通过交换时间戳信息来实现时钟同步。服务器之间按照层级关系进行时间同步,层级越低越接近真实时间源。客户端与 NTP 服务器通信,获取准确时间并调整本地时钟。
在计算机网络中,确保各种网络设备和系统之间的时间一致,对于分布式系统、数据库管理、日志记录以及网络安全等方面至关重要。例如,在分布式系统中,不同节点的操作需要在统一的时间基准下进行,以保证数据的一致性和操作的顺序性。
chronyc常用命令
chronyc sources -v 查看时间源状态:显示 chrony 正在使用的时间源的详细信息,包括时间源的地址、状态、延迟等
chronyc sourcestats -v 查看时间源同步状态:显示 chrony 与时间源的同步状态,如是否已同步、时间偏移量等。
chronyc makestep 手动同步时间:强制 chrony 立即与时间源进行一次时间同步。
chronyc tracking 查看系统时间偏移:显示系统时钟与参考时间之间的当前偏移量。
chronyc reload 重新加载配置文件:在不重启 chrony 服务的情况下,重新加载配置文件,使新的配置生效。
chronyc showconfig 查看当前配置:显示 chrony 当前正在使用的配置信息。
chronyc clients 查看访问控制列表:显示 chrony 配置中允许或拒绝访问的客户端列表。
配置和使用
服务端
#装包
dnf -y install chrony
#修改配置
vim /etc/chrony.conf
#使用阿里云的 NTP 服务器作为上级时间源
pool ntp.aliyun.com iburst
#允许88网段的机器与本机进行时间同步
allow 192.168.88.0/24
# 记录 chrony 的活动日志
logdir /var/log/chrony
# 允许 chrony 调整系统时钟(RTC)
rtcsync
# 如果系统时钟与参考时间的偏差超过 1 秒,在最多 3 次更新后,允许 chrony 直接调整系统时钟。
makestep 1.0 3
#开启服务
systemctl enable --now chronyd
#查看服务器状态,^*表示连接上级时间服务器同步时间成功
chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 203.107.6.88 2 4 377 9 -884us[-1012us] +/- 32ms
客户端
#安装软件包
dnf -y install chrony
#修改配置文件
vim /etc/chrony.conf
#把上级时间服务器的地址改为本地服务端机器的地址即可
pool 192.168.88.51 iburst
#开启服务
systemctl enable --now chronyd
#查看状态
chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.88.51 3 6 377 15 +190us[ +832us] +/- 32ms
#在服务端查看连接信息,可以看到三台客户端都已成功与本机进行时间同步
chronyc clients
Hostname NTP Drop Int IntL Last Cmd Drop Int Last
===============================================================================
node002 32 0 6 - 23 0 0 - -
node003 31 0 6 - 49 0 0 - -
node001 29 0 6 - 60 0 0 - -
评论 (0)