我正在运行一个 Unix 服务器NTPD版本4.2.7。我有各种客户端使用它作为其主要 NTP 服务器,例如其他 unix 服务器、相机、IOT 设备等。我想获取哪些 IP 正在使用此 NTP 服务器的列表,以找出如果此 UX 服务器,哪些客户端会受到影响下去了。以下是我在运行 ntpdc -c monlist 时得到的结果,不是我所期望的,而是使用它作为 NTP 服务器的客户端的预期信息。
server# ntpdc -c monlist
***Server reports data not found
谢谢你们。
答案1
这个问题没有一个干净的解决方案。 NTP 通信通过 UDP 进行,因此它是无状态的,因此您无法检查已建立的连接。
您可以毫不费力地做一个 tcpdump/tshark 过滤器来跟踪一段时间内的连接。我的意思是嗅探网络并观察任何 NTP 流量,特别是客户端到服务器的流量。这将为您提供准确的 NTP 客户端列表,但不是您可以随时查询的内容 - 这是一个需要保持运行一段时间(或无限期运行,具体取决于目的)的进程。
相反,chronyd(也实现了 NTP 协议的一部分)确实跟踪连接的客户端。如果这对您的情况来说是一个可行的替代方案,它将帮助您解决这个问题。
答案2
打开/etc/inet/ntp.conf
并注释“禁用监视器”行。
#disable monitor
之后重新启动 ntp:
svcadm restart ntp
该ntpdc -c monlist
命令应显示客户端连接。