我有两个 ntp 服务器和一个客户端服务器。
NTP 服务器同步时间正常。客户端卡在 .INIT. 步骤,但手动同步有效。客户端 ping 并允许使用 NTP 服务器的策略。所有机器都采用 CentOS 7 版本。
防火墙:
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh ntp
ports: 443/tcp 123/tcp 123/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
显示ntp客户端状态:
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.0.0.1 .INIT. 16 u - 64 0 0.000 0.000 0.000
10.0.0.2 .INIT. 16 u - 64 0 0.000 0.000 0.000
尝试 :
# ntpdate -d -d -d -d 10.0.0.1
9 Jan 13:38:30 ntpdate[17833]: ntpdate [email protected] Wed Apr 12 21:24:06 UTC 2017 (1)
Looking for host 10.0.0.1 and service ntp
host found : 10.0.0.1
transmit(10.0.0.1)
transmit to 10.0.0.1
receive(10.0.0.1)
offset: 0.063550, delay 0.00024
transmit(10.0.0.1)
transmit to 10.0.0.1
receive(10.0.0.1)
offset: 0.063537, delay 0.00027
transmit(10.0.0.1)
transmit to 10.0.0.1
receive(10.0.0.1)
offset: 0.063543, delay 0.00034
transmit(10.0.0.1)
transmit to 10.0.0.1
receive(10.0.0.1)
offset: 0.063526, delay 0.00023
server 10.0.0.1, port 123
stratum 3, precision -23, leap 00, trust 000
refid [10.0.0.1], delay 0.02585, dispersion 0.00000
transmitted 4, in filter 4
reference time: ddff34f7.aeaac96d Tue, Jan 9 2018 13:32:55.682
originate timestamp: ddff364c.fb3327e5 Tue, Jan 9 2018 13:38:36.981
transmit timestamp: ddff364c.eae5727e Tue, Jan 9 2018 13:38:36.917
filter delay: 0.02586 0.02589 0.02596 0.02585
0.00000 0.00000 0.00000 0.00000
filter offset: 0.063550 0.063537 0.063543 0.063526
0.000000 0.000000 0.000000 0.000000
delay 0.02585, dispersion 0.00000
offset 0.063526
9 Jan 13:38:36 ntpdate[17833]: adjust time server 10.0.0.1 offset 0.063526 sec
没关系
第二次尝试:
# ntpdate -u 10.0.0.1
9 Jan 13:39:38 ntpdate[17836]: adjust time server 10.0.0.1 offset 0.063340 sec
没关系
我发现一个涉及 IPv4/IPv6 问题的 RHEL 主题: https://access.redhat.com/solutions/462573
我向 ntpd 文件添加“-4”参数:
# cat /etc/sysconfig/ntpd
# Command line options for ntpd
OPTIONS="-g -4"
我重试了完整测试,结果仍然相同。
我检查状态服务:
# systemctl status ntpd
? ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since mar. 2018-01-09 13:40:21 CET; 3s ago
Process: 17863 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 17864 (ntpd)
CGroup: /system.slice/ntpd.service
+-17864 /usr/sbin/ntpd -u ntp:ntp -g -4
janv. 09 13:40:21 client_server systemd[1]: Starting Network Time Service...
janv. 09 13:40:21 client_server systemd[1]: Started Network Time Service.
janv. 09 13:40:21 client_server ntpd[17864]: proto: precision = 0.130 usec
janv. 09 13:40:21 client_server ntpd[17864]: 0.0.0.0 c01d 0d kern kernel time sync enabled
我看不到任何问题...但是使用 ntpq -p,NTP 卡在 .INIT. 步骤上。
有人有什么想法吗?
答案1
您可以将iburst
NTP 服务器的服务器行附加到服务器行以加快初始同步。(NTP 数据包的突发在公共 NTP 资源上被认为是不礼貌的,但单次突发的负载非常小。)
另外,尝试在服务器上进行数据包捕获以确认客户端正在连接。Wireshark 有一个解析器可以从数据包中获取时间戳。
答案2
查看您的接口是否位于公共区域:firewall-cmd --get-active-zones
如果不,请将其放在那里,如果是,请尝试在您的客户端的 ntp.conf 中添加:
interface listen 127.0.0.1
interface listen 10.0.0.3 #Put your clients interface address here
您也可以从公共区域中删除端口 123/tcp 123/udp,因为在该区域中启用 ntp 服务就足够了。如果您在 ntp.conf 中引用服务器的 IPv4 地址,则 -4 选项也是多余的