确定两个 Linux 服务器之间的时间差

确定两个 Linux 服务器之间的时间差

我正在排除网络上的延迟网络问题。这可能是网卡或电缆问题,但在我解决问题的过程中,我正在查看 ping 数据包离开网卡并到达另一台服务器的时间。两者都是 Linux。

因此,我在两者上都运行了 tcpdump,并从其中一个向另一个发出 ping 操作,然后再返回,查看时间差异可能会揭示延迟的来源。

现在这是一个学术练习,因为我需要消除一些更根本的原因,但我很好奇如何实现这一点。鉴于 ntpd 已安装并运行在两台服务器上,我如何确认两台服务器之间的当前时间差异,尽可能精确 - 考虑到我们讨论的是本地局域网上的延迟,理想情况下是一毫秒左右。

在良好的条件下,NTP 本身可以精确到几毫秒,而且由于两台服务器处于同一环境中,它们(大概)应该达到相似的精度水平,因此它们之间的时间差异应该只有几毫秒——但我该如何检查呢?

答案1

如果两个服务器是 NTP 对等体,则使用

  ntpq -p

这将显示当前偏移量

请注意,NTP 会考虑网络延迟。如果您知道每台服务器与通用 NTP 服务器的偏移量,那么使用标准工具获得的偏移量就和您能获得的偏移量差不多了。


更新

我有两个使用 NTP 的 unix 服务器。让我们看看它们保持什么样的时间:

$ sudo /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 hufu.ki.iif.hu  185.219.2.214    2 u   12   64    1   71.755   -0.073   0.001
 web.puflet.info 188.138.107.156  3 u   11   64    1   78.248    0.417   0.001
 84.2.44.19      10.20.75.140     2 u   10   64    1   74.721   -1.076   0.001

$ sudo /usr/sbin/ntpq -p otherbox
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp2.exa-networ 195.66.241.10    2 u  799 1024  377   43.405    7.796 218.471
+mantaray.netine 249.240.53.144   3 u  289 1024  377   34.782    8.484 212.631
*rilynn.me.uk    81.2.117.228     2 u  765 1024  377   45.665    6.804 142.023
+ntp.thirdlight. 193.67.79.202    2 u  791 1024  377   38.322    9.871 223.397

他们使用不同的服务器,因为他们使用来自 ntp 池的服务器。

我会暂时将 otherbox 添加到此服务器的配置中,这样我就可以直接测量时间偏移

$ sudo vi /etc/ntp.conf
 (added `server otherbox`)

$ sudo /sbin/service ntpd restart

$ sudo /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 gamma.h3x.no    78.70.33.22      3 u    4   64    1   34.840   -0.964   0.001
 web.puflet.info 188.138.107.156  3 u    3   64    1   78.148   -1.243   0.001
 alpha.rueckgr.a 129.69.1.153     2 u    2   64    1   61.495   -2.362   0.001
 otherbox.exampl 60.155.73.34     3 u    1   64    1    0.604  -11.286   0.001

看起来我的两台服务器上的时间戳相差约 11 毫秒。

答案2

ntpdate -q做你想做的事。

例子:

root@host1:~# ntpdate -q host2 
server host2, stratum 4, offset 109.584520, delay 0.77560
17 Apr 21:48:16 ntpdate[28849]: no server suitable for synchronization found

在这种情况下,服务器之间的时间相差大约为110秒。

答案3

您还可以在 host1 上执行以下操作:

root@host1# clockdiff -o host2

相关内容