我在 VirtualBox 中运行 Ubuntu 12.04 LTS VM。一切都很好,只是时钟最终比网络上的所有其他机器晚了 25 分钟。我的正常程序是设置 NTP,手动运行 ntpdate,然后我再也没有遇到任何问题。我调整了 NTP 设置,甚至添加了另一个本地 NTP 服务器作为预防措施。但我注意到所有其他机器(虚拟机或物理机)都将一个漂移文件写入 /var/lib/ntp。这台机器从来没有这样做过。它有以下行/etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
但文件从未被创建
ericu@ubuntu-lts-base:/etc/apparmor/init$ service ntp status && ls -l /var/lib/ntp/
* NTP server is running
total 0
ericu@ubuntu-lts-base:/etc/apparmor/init$
我检查了目录的权限
ericu@ubuntu-lts-base:/etc/apparmor/init$ ls -l /var/lib | grep ntp
drwxr-xr-x 2 ntp ntp 4096 Jun 5 2012 ntp
我觉得不错。这是怎么回事?这肯定是问题所在。其他每台机器都能正常创建漂移文件,并且永远不会与 NTP 服务器失去同步。
答案1
检查日志文件;您应该会看到 ntp 守护程序定期调整时钟。任何虚拟机都会出现偏差。如果没有持续的修正,则 ntpd 无法正常工作,并且不可避免地会失去同步。
使用“ntpq -p”来检查您的 ntp 客户端有关您的 ntp 服务器的报告。
[user@host-1 ~]$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+1.1.1.2 69.15.40.29 3 u 827 1024 377 0.575 -0.553 0.125
+1.1.1.3 38.229.71.1 3 u 582 1024 377 0.393 -0.170 0.104
1.1.1.4 11.4.12.87 4 u 479 1024 377 0.465 -0.276 0.020
*1.1.1.5 67.18.87.111 3 u 634 1024 377 0.460 -0.117 0.575
它包含大量有用的信息。您应该会看到延迟、偏移和抖动的较小但非零的值。'reach' 应该是 377 - 如果是 0,则表示您的 ntp 客户端未成功查询关联的 ntp 服务器。未成功连接到服务器的其他迹象包括 refid 是否显示 '.INIT.',或者 stratum (st) 是否为 16。如果是这种情况,请开始检查正常的“可达性”标准:防火墙、ntp 服务器是否配置为允许该客户端等。