因此,我有一个从我的电脑到在 UDP 端口 123 上运行 NTP 的设备的以太网点对点连接。这是 nmap 显示的内容:
root@kali:~# nmap -sU mydevice
PORT STATE SERVICE
123/udp open|filtered ntp
现在,当我启动 ntp 并检查其状态时,我得到的结果如下:
root@kali:~# sudo service ntp start
root@kali:~# sudo service ntp status
● ntp.service - Network Time Service
Loaded: loaded (/lib/systemd/system/ntp.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2019-12-06 10:31:22 CET; 1s ago
Docs: man:ntpd(8)
Process: 4203 ExecStart=/usr/lib/ntp/ntp-systemd-wrapper (code=exited, status=0/SUCCESS)
Main PID: 4209 (ntpd)
Tasks: 2 (limit: 4915)
Memory: 2.2M
CGroup: /system.slice/ntp.service
└─4209 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:111
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 2 lo 127.0.0.1:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 3 eth0 10.96.104.97:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 4 wlan0 192.168.1.126:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 5 lo [::1]:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 6 eth0 [fe80::868a:75a:e3ad:2cbc%2]:123
Dec 06 10:31:22 kali ntpd[4209]: Listen normally on 7 wlan0 [fe80::cbd2:c686:502d:d0d0%3]:123
Dec 06 10:31:22 kali ntpd[4209]: Listening on routing socket on fd #24 for interface updates
Dec 06 10:31:22 kali ntpd[4209]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
Dec 06 10:31:22 kali ntpd[4209]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
Dec 06 10:31:23 kali ntpd[4209]: Soliciting pool server 162.159.200.123
这是 ntpq -npcrv 的响应
root@kali:~# ntpq -npcrv
remote refid st t when poll reach delay offset jitter
==============================================================================
10.96.104.98 .STEP. 16 u - 64 0 0.000 0.000 0.000
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
*83.168.200.199 192.36.143.130 2 u 76 64 1 3.652 -0.742 0.646
193.182.111.143 194.58.202.20 2 u 40 64 1 2.206 -0.768 4.768
-213.199.225.30 212.160.106.226 2 u 46 64 3 44.320 0.156 4.717
+213.251.52.202 195.66.241.10 2 u 11 64 3 19.966 -1.813 1.371
-109.201.133.100 151.80.124.104 3 u 44 64 3 31.114 1.118 0.964
+147.78.228.41 193.11.166.36 2 u 11 64 3 3.708 -1.263 0.946
193.182.111.14 192.36.143.130 2 u 40 64 1 2.196 -0.488 0.677
+193.182.111.13 194.58.202.20 2 u 47 64 3 2.062 -1.249 4.331
+27.124.125.250 85.199.214.98 2 u 45 64 3 31.547 -1.261 1.389
218.186.3.36 .GPS. 1 u 38 64 1 307.278 37.465 11.156
162.159.200.1 10.128.8.119 3 u 41 64 1 1.660 -0.669 0.295
+62.201.225.9 62.201.214.162 2 u 45 64 3 84.179 -1.641 0.768
-45.231.168.6 23.31.21.163 3 u 46 64 3 170.302 -27.169 0.945
193.182.111.141 194.58.202.20 2 u 42 64 1 2.567 -0.554 2.066
102.130.49.223 85.199.214.98 2 u 42 64 1 186.493 -1.765 0.277
176.9.241.107 130.149.17.8 2 u 40 64 1 36.654 -0.853 0.272
associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,
version="ntpd [email protected] (1)", processor="x86_64",
system="Linux/5.3.0-kali2-amd64", leap=00, stratum=3, precision=-22,
rootdelay=4.995, rootdisp=219.827, refid=83.168.200.199,
reftime=e19b727a.eb1b269c Wed, Dec 11 2019 14:49:46.918,
clock=e19b72c6.3c2e95c2 Wed, Dec 11 2019 14:51:02.235, peer=1791, tc=6,
mintc=3, offset=-1.425931, frequency=-5.187, sys_jitter=0.437287,
clk_jitter=0.668, clk_wander=0.017, tai=37, leapsec=201701010000,
expire=202006280000
它显示在 3 eth0 上正常监听,这是我的远程设备。b 现在使用 wireshark 我可以看到往返于该主机的 NTP 数据包。
编辑:这是一个 Google Drive 文件夹,其中包含两个请求的屏幕截图、一个客户端和一个服务器,以及来自 wireshark 的完整 .pcap: https://drive.google.com/drive/folders/1PbvjJugtpRJKN0YrvX5VbI9iJfnJxdYH
到目前为止一切顺利,我的电脑和设备之间似乎有 NTP 通信。
但是,当我尝试 ntp 查询设备时:
root@kali:~# ntpdate -q mydevice
29 Nov 12:59:17 ntpdate[9599]: no server suitable for synchronization found
root@kali:~# ntpq -p mydevice
10.96.104.98: timed out, nothing received
***Request timed out
为什么我无法手动查询远程主机,而我的 wireshark 清楚地显示我正在与它进行“自动 ntp 通信”?是不是因为远程主机只运行 ntp 客户端而不是 ntp 服务器?如果是这样,我可以使用哪种 ntpq 命令与其通信?
答案1
根据您的数据包捕获,当您启动 NTP 时,10.96.104.98 的本地时钟设置为 1997 年 1 月 1 日 00:00。对于前 4 次轮询,时钟仍设置为该时间,这意味着您没有同步(因为偏移太大)。到第 5 次轮询时,10.96.104.98 已将其时钟更改为正确时间,到第 6 次轮询时,它显示 10.96.104.97 作为其参考时钟。
您捕获的输出ntpq -npcrv
显示最多有 3 次成功轮询到任何时间服务器。因此,这表明输出是在第 5 次轮询之前捕获的。如果您现在(或第 6 次轮询之后的任何时间)再次尝试,它应该会显示同步成功。
请注意,如果您不控制10.96.104.97,它拒绝响应是正常的ntpq -p
,并且ntpdate
不会选择它,因为您的时间太远了。
仔细检查您的程序是否使用或标志ntpd
启动,以便它在初始启动时正确设置时钟。-g
-G