ntpd 同步但 chronyd 失败

Joe*_*Joe 3 ntp ntpd rhel7 chrony

我正在使用 chronyd 设置时间服务器,但无法同步。

# chronyc sources
210 Number of sources = 5
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? smtp.visionnet.us             0   10     0   10y     +0ns[   +0ns] +/-    0ns
^? nist1-lnk.binary.net          0   10     0   10y     +0ns[   +0ns] +/-    0ns
^? c-73-98-218-154.hsd1.ut.c     0   10     0   10y     +0ns[   +0ns] +/-    0ns
^? clock.xmission.com            0   10     0   10y     +0ns[   +0ns] +/-    0ns
^? time-c.timefreq.bldrdoc.g     0   10     0   10y     +0ns[   +0ns] +/-    0ns
Run Code Online (Sandbox Code Playgroud)

几个小时后,它仍然无法同步。

但是,如果我在具有相同 ntp 服务器的同一主机上配置 ntpd,它会立即同步:

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-lithium.constan 18.26.4.105      2 u   50   64    7   74.746   13.677   1.487
*nist1-lnk.binar .ACTS.           1 u   49   64    7   48.827    6.845   4.008
+c-73-98-218-154 .GPS.            1 u   47   64    7   12.792    2.418   1.338
+clock.xmission. .XMIS.           1 u   49   64    7   22.799   12.845   1.272
-time-c.timefreq .NIST.           1 u   49   64    7   59.498   -2.968   1.434
Run Code Online (Sandbox Code Playgroud)

如果我在两次尝试期间都观察 tcpdump,我可以看到当 chrony 尝试时,它发送了一个 NTPv4 客户端数据包,我从未看到响应,但是当 ntpd 执行它时,我会立即看到 NTPv4 客户端数据包和 NTPv4 服务器数据包。

有什么我想念的吗?chrony 是否在 udp 123 以外的任何其他端口上进行通信?(我们确实有一个数据中心防火墙,需要打开一个洞才能出去,但我无法摆脱 chronyd 可能还需要其他东西的感觉)

环境:

系统是一周前打补丁的 RHEL 7.3

这是我的 chrony.conf

server us.pool.ntp.org iburst
server time.nist.gov iburst
server time.nc7j.com iburst
server time.xmission.com iburst
server time-c.timefreq.bldrdoc.gov iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
allow 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)

为了比较,我的 ntp.conf

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
server us.pool.ntp.org iburst
server time.nist.gov iburst
server time.nc7j.com iburst
server time.xmission.com iburst
server time-c.timefreq.bldrdoc.gov iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntp.log
Run Code Online (Sandbox Code Playgroud)

小智 10

不同之处在于 chronyd 默认为每个客户端请求使用一个随机源端口。如果防火墙不允许来自 123 以外的其他端口的客户端请求,则需要通过添加acquisitionport 123到 chrony.conf来指定端口。该指令记录在此处