编辑
我已经尝试了您的所有建议,但 ntpd 似乎拒绝同步到服务器。
[vivs@peter-centos ~]$ /usr/sbin/ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================
192.168.0.30 .LOCL. 1 u 11 64 3 0.984 232732. 20083.2
这个抖动“20083.2”是不是表示时间被手动修改了?
我已经关闭了vmware的时间同步。
原始问题
这是 ntp 的状态
[root@peter-centos gw]# /usr/sbin/ntpq -pn
remote refid st t when poll reach delay offset jitter
=============================================
192.168.0.30 .LOCL. 1 u 153 1024 377 0.950 1905553 274023.
*127.127.1.0 .LOCL. 10 l 9 64 377 0.000 0.000 0.001
您可以看到它仅与本地时钟“127.127.1.0”同步。
是不是因为偏移量太大了?
但在我手动设置日期后日期命令,它仍然拒绝同步到 192.168.0.30
这是ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
server 192.168.0.30 #blf
#broadcast 192.168.1.255 key 42 # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 key 42 # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 key 42 # manycast client
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
#server 127.127.1.0 # local clock
#fudge 127.127.1.0 stratum 10
# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
lkey 8
h the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
lkey 8
olkey 8
lkey 8
答案1
更新,2021 年 4 月:自 2016 年以来,正确的答案是在虚拟机中运行 NTP。以下答案应被弃用。
之前:
啊——现在清楚了:
我的机器安装在 vmware 工作站上。所以,从所有的答案来看,我猜抖动之所以这么大可能是因为 vmware 调整了时间。我会看看我是否正确。
不要在虚拟机中运行 ntp。主机不保证 CPU 切片,因此虚拟机的时钟不准确。如您所见,ntp 正在尝试跟上看起来变化很大的外部时钟,并最终放弃。
这个问题的一般答案是不运行 ntp,安装 VMware 工具并将虚拟机的时钟锁定到主机的时钟。
具体答案取决于你运行的 Linux 版本。我有一些关于 CentOS 的注释(可能普遍适用于其他 RedHat 系列发行版)这里。
答案2
首先,停止 ntpd,然后尝试使用 ntpdate {server} 设置日期:
/etc/init.d/ntp 停止 /usr/sbin/ntpdate 192.168.0.30
这是否正确设置了您的时间?还是超时了?
如果超时,请尝试另一个 NTP 服务器:
/usr/sbin/ntpdate pool.ntp.org
从高抖动来看,我希望 ntpdate 能够工作 - 一旦完成,如果可能的话重新启动(如果无法重新启动,只需重新启动 ntpd - 尽管许多服务会因这样的时间跳跃而感到困惑),然后ntpq -p
再次检查。
答案3
正如上面有人提到的,我认为主要答案是不正确的。
对于 VMWare,他们在 Linux Guest 计时最佳实践中明确建议使用 NTP 而非 VMWare 工具。此外,对于所有 VM,您都应在文件tinker panic 0
顶部添加指令/etc/ntp.conf
,以确保无论当前漂移如何,时间都能正确,这在 VM 中很常见。
摘录:Linux 客户端的计时最佳实践
NTP 建议
VMware 建议使用 NTP 而不是 VMware Tools 定期时间同步。NTP 是行业标准,可确保客户机中的计时准确。可能需要打开防火墙 (UDP 123) 以允许 NTP 通信。
答案4
VMware 有针对 Linux 计时的最佳实践: