NTP 正在运行,VM 上的服务器时间错误

sin*_*ina 6 linux virtual-machines ntp ntpd ntpdate

服务器时间关闭了 7 小时(而不是上午 10 点,它是凌晨 3 点,即使date显示了正确的时区)。ntpq 的输出是:

$ ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 xx.xxx.xxx.x.ar xxx.x.xx.xx      2 u   72 1024  177    6.516  2520657 1650156
 ntp.xxxx.ac.uk  xxx.xxx.xxx.x    2 u   7h 1024  377   14.039  2520655 1347346
 xxx.xxx.xxx.xx  xxx.xxx.xxx.x    2 u  114 1024  377    5.449  -18.941 2130343
 ns1.xxxxxxx.com xxx.x.xx.xx      2 u  148 1024  377    8.050  2520655 1650156
Run Code Online (Sandbox Code Playgroud)

时间由以下人员确定:

ntpdate -u 0.europe.pool.ntp.org
Run Code Online (Sandbox Code Playgroud)

然而,几天后它又发生了。我怀疑 中的第二行ntpq -p,它表示自上次收到数据包以来已经过了7 小时。但如果这就是原因,那为什么ntp不使用其他服务器来同步时间呢?

发生了什么事?您将如何防止这种情况再次发生?

编辑另一件可能有用的考虑是它是一个虚拟机。虚拟机是否可能处于某种暂停状态?

注意vmware-toolbox-cmd timesync status是禁用的。

sho*_*hok 5

启动时,ntpd 会检查您的主机和远程 NTP 服务器之间的时差。如果差异太大(通常为 10-15 分钟),它拒绝更改任何内容。

当您执行时,您ntpdate可以有效地使用一次性的、更简单的 SNTP 实现,它将您的时间缩短到 ntpd 本身所做的几毫秒之内。现在,如果你重新启动 ntpd 服务,你应该有一个同步的服务器(用 来检查ntpq -p)。

一个简单的永久解决方案是首先ntpdate在引导过程的早期使用,然后在一段时间后启动“真正的”ntp 守护进程。作为记录,CentOS 6.x 和 7.x 做同样的事情:如果您同时安装 ntpdate 和 ntp,前者将在引导过程的早期使用,而后者将在稍后阶段使用。

  • 不幸的是,是的:你必须运行 `ntpdate`。说实话,由于 ntpdate 在新的 Linux 安装中已弃用,您还可以使用带有特殊参数的 `ntp`(详细信息请参见手册页)。你的虚拟机管理程序提供了特殊的来宾添加,安装它们 - 通常它们包括一些与主机的串行通信通道,启用按需时间同步。 (2认同)

Ale*_*ini 3

看来您的 ntp 由于过度抖动/偏移而无法同步,我建议尝试靠近您所在国家/地区的不同 ntp 服务器池。

无需混淆您状态中的 ip,因为这些 ip 是公共且有据可查的服务器

如果您的计算机在 VMware 下运行,请另请检查http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf保持物理服务器的 ntp 时钟对齐

关于“另一件可能有用的考虑因素是它是一个虚拟机。虚拟机是否有可能处于某种暂停状态?”

是的,即使 vmware 工具设置为同步禁用,VMware 也会在暂停后重新同步时钟

无论是否打开 VMware Tools 定期时间同步,时间同步都会在某些操作后发生:

  • 当 VMware Tools 守护程序启动时(例如在重新引导或开机操作期间)
  • 从挂起操作恢复虚拟机时
  • 恢复到快照后
  • 缩小磁盘后