配置chrony时间同步|chronyc sources -v 查看时间同步信息

时间:2025-04-05 09:27:40

1. 服务端配置

  1. 关闭防火墙,确保服务端与客户端连通性
  2. 安装 服务
yum -y install chrony.x86_64
  1. 修改/etc/配置文件
    修改第22行,Allow NTP client access from local network,配置允许访问的客户端列表,支持CIDR。
    修改第26行设置同步,Serve time even if not synchronized to any NTP server.,即使没有与任何 NTP 服务器同步,也要服务时间。打开注释即可,即:
cat /etc/
# Use public servers from the  project.
# Please consider joining the pool (/).
pool 2. iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
local stratum 10

# Specify file containing keys for NTP authentication.
keyfile /etc/

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

  1. 重启下服务端chrony服务,使用systemctl restart 重启即可。

2. 客户端配置

  1. 关闭防火墙,确保服务端与客户端连通性
  2. 安装 服务
yum -y install chrony.x86_64
  1. 修改/etc/配置文件
    指定时间同步源服务器IP,格式如下:
vim /etc/
#prefer是将此服务器标记为首选服务器,如果有多台server可以指定首选服务器,当系统启动时,Chrony会首先尝试与该服务器进行时间同步。
server  prefer iburst
server  iburst
#"iburst"选项表示在初始化时以快速速率向服务器发起时间查询,以快速同步时间。
  1. 重启下chrony服务

3. 查看同步状态

chronyc sources -v 查看时间同步源信息

[root@localhost ~]# 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
===============================================================================
^- 181-.as486>     2   9   377    87  -4408us[-3918us] +/-  245ms
^* 60.12.124.12                  2   9   377    87  +8197us[+8688us] +/-   50ms
^- 119.28.183.184                2   9   377   413    -18ms[  -18ms] +/-   91ms
^+              1   8   377   291  +5013us[+5028us] +/-   34ms
^? 192.168.174.1                 0   9     0     -     +0ns[   +0ns] +/-    0ns
^- 192.168.159.129               3   6   377    43    -19ms[  -19ms] +/-   93ms

在使用"chronyc sources -v"命令时,MS状态的符号含义如下:

  • "^?"表示该源的状态未知,chronyd尚未与该源进行同步。这意味着chronyd尚未与该源建立连接,无法确定该源的时间准确性或可靠性。

  • “^-“表示该源当前处于可用状态,但chronyd尚未选择该源作为参考源进行同步。chronyd会尝试与多个可用源进行通信,并评估它们的时间准确性和可靠性。当chronyd确定某个源具备较好的时间准确性和可靠性时,它会将该源标记为”^*”。

  • "^*"表示该源是当前活跃的参考源,chronyd正在使用该源进行时钟同步。这意味着chronyd已与该源建立连接,并使用该源的时间信息来调整系统时钟,以保持时间的准确性。

当状态中出现"^“表示时间同步正常,chronyd正在使用该源进行时钟同步。对于正常运行的chronyd,应该至少有一个源被标记为”^“。如果没有源被标记为”^*",则表示chronyd无法与任何可用源进行同步,时间同步可能存在问题。

上面"chronyc sources -v"命令每一列的含义如下:

  1. MS:时间源的标识符;
  2. Name/IP address:时间源的名称或IP地址;
  3. Stratum:时间源的层级;
  4. Poll:轮询间隔的对数(以2为底);
  5. Reach:到达性寄存器的八进制值,表示与时间源的连接状态;
  6. LastRx:最后一次接收到时间源的时间戳;
  7. Last sample:最后一次测量的时间偏移量;
  8. Adjusted offset :调整后的时间偏移量;
  9. Measured offset:测量的时间偏移量;
  10. Estimated error:估计的时间误差。

源模式(Source mode)和源状态(Source state)在图形化显示时使用,用来表示时间源的类型和状态。