过去我主要使用 tcptraceroute 来检查 http 和 ssh。
现在我需要检查我的主机是否可以访问 NTP 服务器。
这可能吗?
我有两台机器。
在应用程序级别我看到:机器 qual 无法访问 ntp 服务器,而机器 prod 可以访问 ntp 服务器。
如果我运行此命令,两者的输出是相同的:
产品:
prod:(/root/home/root)(root)#traceroute -U -p ntp 30.252.33.1
traceroute to 30.252.33.1 (30.252.33.1), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
品质:
qual:~ # traceroute -U -p ntp 30.252.33.1
traceroute to 30.252.33.1 (30.252.33.1), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
我猜测 NTP 服务器只是从 traceroute 中删除了 UDP 包,并且 traceroute 没有收到答复。
(对于基于 TCP 的服务,这可以正常工作,因为有一些“连接建立”答复)。
是否可以使用 traceroute 之类的网络工具在网络级别检查 ntp?
如果没有,如何检查一台机器是否可以访问 ntp 服务器?
答案1
“检查 ntp” 应该使用 NTP 感知实用程序进行。ntpd 和 chrony 都会将最后几个数据包的成功报告为“到达”寄存器。
“远程主机上的端口是否打开”可以使用端口扫描器来回答。
$ sudo nmap -6 -sU -p 123 2.pool.ntp.org
Starting Nmap 6.40 ( http://nmap.org ) at 2019-05-03 16:55 UTC
Nmap scan report for 2.pool.ntp.org (2600:3c01::f03c:91ff:fec8:5c8)
Host is up (0.067s latency).
Other addresses for 2.pool.ntp.org (not scanned): 2607:f3c8:3803:1::6 2001:19f0:8001:1de:5400:ff:fe60:f647 2001:4998:c:1028::1001
rDNS record for 2600:3c01::f03c:91ff:fec8:5c8: chl.la
PORT STATE SERVICE
123/udp open ntp
Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds
“查找到主机的路径”可以使用 tracepath 或 traceroute 样式的实用程序来回答。这些实用程序要求 ICMP 响应准确,但在各种网络上可能会被过度过滤。
$ tracepath6 -b 2.pool.ntp.org
1?: [LOCALHOST] 0.007ms pmtu 1500
1: 2600:3c03::8678:acff:fe0d:97c1 (2600:3c03::8678:acff:fe0d:97c1) 1.537ms
1: 2600:3c03::8678:acff:fe0d:97c1 (2600:3c03::8678:acff:fe0d:97c1) 4.161ms
2: 2600:3c03:6666:12::1 (2600:3c03:6666:12::1) 3.062ms
3: 2600:3c03:6666:5::2 (2600:3c03:6666:5::2) 1.075ms asymm 2
4: 2001:678:34c:56::2 (2001:678:34c:56::2) 26.746ms asymm 3
5: 2001:678:34c:6a::1 (2001:678:34c:6a::1) 35.811ms asymm 4
6: 2001:678:34c:52::2 (2001:678:34c:52::2) 67.198ms asymm 3
7: 2600:3c01:3333:3::2 (2600:3c01:3333:3::2) 67.826ms asymm 5
8: chl.la (2600:3c01::f03c:91ff:fec8:5c8) 67.376ms reached
Resume: pmtu 1500 hops 8 back 5
沿着路径来回查找,直到找到数据包发生了什么。例如,检查主机上的 NTP 服务器的配置文件,并检查路径上的所有防火墙。