标签: ntpd

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

服务器时间关闭了 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不使用其他服务器来同步时间呢?

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

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

注意 …

linux virtual-machines ntp ntpd ntpdate

6
推荐指数
2
解决办法
9393
查看次数

使用 GPS 作为 NTP 守护进程的唯一来源

我对在没有连接到外部时间服务器的本地网络上使用 GPS 接收器作为外部时钟源来实现带有 NTP 守护程序(客户端版本 3)的时间服务器有疑问。

我尝试使用三种不同的 GPS 设备:

  • u-blox - NEO-M8N-0-10,
  • Adafruit Ultimate GPS Breakout v3 模块 PA8H,
  • Digilent PmodGPS,

和两种不同的驱动程序类型:20 (NMEA) 和 28 (SHM - 共享内存类型)。对于备份,当 GPS 不可用时,我有一个无纪律的本地时钟(驱动程序类型 1)。

当使用驱动程序类型 28 并且 GPS 信号消失或未通过完整性检查时,系统开始使用其本地时钟,但在这种情况下存在过多的离散。如果存在远程服务器,系统会继续正常工作并使用远程(备用)服务器进行同步。系统将在只有本地网络连接的情况下运行。当使用驱动程序类型 20 时,我得到的是“*”而不是“o”,而且似乎 PPS 信号没有用于同步,尽管 ppstest 通过了。

  1. 是否有可能将 NTP 配置为仅使用 GPS 信号(如果可用)和本地时钟(如果不可用)的稳定时钟?
  2. 使用驱动程序类型 20 还是类型 28 更好?

ntp ntpd gps

6
推荐指数
1
解决办法
315
查看次数

在独立网络上托管 NTP 服务器

我有一个未连接到 Internet 的 LAN,我正在尝试将所有计算机(Windows 和 Linux)同步到 NTP 服务器。我所能找到的只是设置带有 Internet NTP 服务器的 NTP 客户端。

我如何设置我自己的 Linux NTP 服务器,或者找到关于如何设置的好文档?

linux ntp ntpd

5
推荐指数
1
解决办法
1万
查看次数

NTP 中的层次是什么增加的?

抱歉,我从手册页、维基百科等中不太清楚。

我理解层 0 作为权威时间源和层 1 作为连接服务器的概念。但是,对于在第 1 层时间服务器和最终桌面之间可能有额外跃点的更大网络,我不确定应该考虑什么。您是否会像在 traceroute 中看到的那样,每跳都会增加层数……或者这些主机是层数 2,而不管网络“距离”如何。

ntp time time-synchronization ntpd

5
推荐指数
1
解决办法
3542
查看次数

NTPd 是否必须侦听接口或地址以更新服务器时间?

默认情况下,NTPd 侦听 UDP 端口 123(所有 IP 地址)。这是否需要仅更新服务器时间?

如果有必要监听一个地址,应该使用哪个地址?它可以侦听的可能地址是:

  • 127.0.0.1
  • 服务器IP
  • ::1 (IPv6)
  • 服务器 IP (IPv6)

为什么它甚至必须监听本地主机(127.0.0.1 和 ::1)?没有人可以访问该地址上的服务器。


要将 NTPd 绑定到单个地址,-I可以使用该选项。对于我的 Debian 盒子,我必须编辑/etc/default/ntp,并替换-g为:

-g -I 1.2.3.4 -I 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

这会导致 NTPd 侦听公共地址 1.2.3.4(用您自己的地址替换)和 127.0.0.1。

ntpd

5
推荐指数
2
解决办法
3万
查看次数

系统时钟与 hwclock 和 ntpd 不同步

我当前的系统明显偏离 hwclock 和 ntpd。我在网上和SF上查看了许多论坛和帖子,但没有找到合适的解决方案。

这是我的 ntpq -pn 输出:

   轮询到达延迟偏移抖动时的远程重新定义
================================================== ============================
 122.226.192.4 66.220.9.122 2 u 30 64 3 53.734 146507. 127822.
 120-88-46-10.sn 158.43.128.33 2 u 33 64 3 150.373 12823.5 127821。
 suisho.attritio 133.100.9.2 2 u 29 64 3 34.351 148556. 133910。
 123.146.124.27 61.153.197.226 3 u 27 64 3 21.123 152572. 133909.
 114.80.81.1 204.152.184.72 2 u 29 64 3 55.605 148520. 129851.

到目前为止,我的 'hwclock' 说:

Fri 25 Mar 2011 03:27:06 PM CST -0.048504 seconds

我的“约会”说:

Fri Mar 25 15:21:17 CST 2011 …

linux ntp time ntpd clock-synchronization

5
推荐指数
1
解决办法
1万
查看次数

无法识别 NTP 配置?

我正在尝试在我的机器上配置 NTP,但系统似乎没有读取我设置的参数。下面是我的/etc/ntp.conf文件。(我应用了最基本的配置来排除其他问题)

server 10.45.68.47
server 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

设置完上述配置后,我通过执行以下操作重新启动 ntpd 进程:

service ntpd restart
Run Code Online (Sandbox Code Playgroud)

然后我得到以下输出:

Shutting down ntpd:                                        [  OK  ]
ntpd: Synchronizing with time server:                      [FAILED]
Starting ntpd:                                             [  OK  ]
Run Code Online (Sandbox Code Playgroud)

此外,我可以在以下内容中看到/var/etc/messages

 Apr  2 10:54:07 hsystem1a ntpd[21067]: ntpd exiting on signal 15
 Apr  2 10:54:07 hsystem1a ntpdate[21537]: can't find host ntpServer1 
 Apr  2 10:54:07 hsystem1a ntpdate[21537]: can't find host ntpServer2 
 Apr  2 10:54:07 hsystem1a ntpdate[21537]: no servers can be used, exiting
Run Code Online (Sandbox Code Playgroud)

因此,它似乎ntpServer1ntpServer2正在从某个地方,而不是我所配置的IP地址读取/etc/ntp.conf …

linux redhat ntp ntpd

5
推荐指数
2
解决办法
2万
查看次数

强制 ntpd 以较小的步骤进行更改

NTP 文档说:

在通常情况下,ntpd 会以小步长调整时钟,以便时间刻度有效地连续且没有间断 - http://doc.ntp.org/4.1.0/ntpd.htm

然而,这完全不是我在实践中注意到的。如果我手动将系统时间向后或向前更改 5 或 10 秒然后开始ntpd,我会注意到它会一次性调整时钟。

例如,使用此代码:

#!/usr/bin/env python
import time
last = time.time()
while True:
    time.sleep(1)
    print time.time() - last
    last = time.time()
Run Code Online (Sandbox Code Playgroud)

当我第一次更改时间时,我会注意到以下内容:

1.00194311142
8.29711604118
1.0010509491

然后当我启动 NTPd 时,我会看到如下内容:

1.00194311142
-8.117301941
1.0010509491

有没有办法强制ntpd以较小的步骤进行调整?

linux ntpd

5
推荐指数
1
解决办法
6572
查看次数

Apparmor 拒绝 ntpd 访问其自己的日志

ntpd 抱怨它无法访问自己的日志

# ntpd -qgddd 
...
11 Sep 16:23:00 ntpd[7262]: can't open /var/log/ntpstats/peerstats.20130911: Permission denied
...
11 Sep 16:23:01 ntpd[7262]: can't open /var/log/ntpstats/peerstats.20130911: Permission denied
...
11 Sep 16:23:01 ntpd[7262]: can't open /var/log/ntpstats/loopstats.20130911: Permission denied
Run Code Online (Sandbox Code Playgroud)

strace 表示同意

open("/var/log/ntpstats/loopstats.20130911", O_WRONLY|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)
Run Code Online (Sandbox Code Playgroud)

根据 syslog apparmor 阻止它这样做

[526597.819210] type=1400 audit(1378909374.692:91): apparmor="DENIED" operation="open" parent=1013 profile="/usr/sbin/ntpd" name="/usr/local/sbin/" pid=7262 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[526597.819277] type=1400 audit(1378909374.692:92): apparmor="DENIED" operation="open" parent=1013 profile="/usr/sbin/ntpd" name="/usr/local/bin/" pid=7262 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[526597.819330] type=1400 audit(1378909374.692:93): …
Run Code Online (Sandbox Code Playgroud)

logging ntpd apparmor

5
推荐指数
1
解决办法
3221
查看次数

是否可以在 Busybox 系统上检查 NTPd 状态?

我需要知道当前日期/时间在基于 Busybox 的小型嵌入式 Linux 系统中是否可靠。

我正在运行 Busybox ntpd,但显然没有程序可以查询状态。

在更传统的 Linux 安装中,我会使用 ntpdc、ntpq、ntpstat 甚至 timedatectl,但这些在 Busybox/Buildroot 系统上都不可用。

我还可以做些什么?

monitoring busybox ntpd

5
推荐指数
1
解决办法
7761
查看次数