• 首页
  • 关于
    • 北境程序猿 photo

      北境程序猿

    • 详细
    • Email
    • Twitter
    • Facebook
    • Google+
    • LinkedIn
    • Instagram
    • Github
    • StackOverflow
    • Steam
    • SoundCloud
    • Weibo
    • Hacker News
  • 文章
    • 所有文章
    • 所有标签

理解ntpq命令输出

22 Jul 2021

Reading time ~1 minute


在生产环境中,通过网络种的时钟服务器来同步所有服务器的系统时钟是很常用的一种时钟同步方式,本文不探讨ntp服务器的架设,而是带大家解读一下作为时钟客户端的服务器上常用的命令行工具ntpq -p的输出内容。

首先看看ntpq输出长啥样:

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.neu.edu.cn .PTP.            1 u   20  256  377   13.453   -1.132   0.436
-stratum2-1.ntp. 194.190.168.1    2 u   30  256  377  226.604  -63.413   9.412
+makaki.miuku.ne 218.186.3.36     2 u   56  256  375  134.900   -6.526   0.424
+139.199.214.202 100.122.36.196   2 u   96  256  377   42.331   +2.415   0.567

由于第一列的时钟源名字太长,被隐藏了部分输出,为了看到完整的内容,可以执行ntpq -pw,输出如下:

# ntpq -pw
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.neu.edu.cn .PTP.            1 u  197  256  377   13.453   -1.132   0.436
-stratum2-1.ntp.led01.ru.misaka.io
                 194.190.168.1    2 u  207  256  377  226.604  -63.413   9.412
+makaki.miuku.net
                 218.186.3.36     2 u  233  256  375  134.900   -6.526   0.424
+139.199.214.202 100.122.36.4     2 u    3  256  377   42.331   +2.415   0.567

首先解释前4列,remote列详细说明了我们连接到的NTP服务器。refid列表示远程服务器连接的NTP服务器。st列指的是服务器的层级,指的是服务器离我们有多“近”(数字越低,越“近”,通常越好)。t列表示类型,具体来说是服务器使用单播、广播、多播还是多播。

接着的3列,when列指的是距离上次轮询服务器的时间有多长。poll列表明服务器将被轮询的频率,对于示例屏幕截图中的大多数条目,轮询时间为64秒。reach列包含最近8次NTP更新的结果。如果所有8个都成功,这个字段将读取377。这个数字是八进制的,所以8个成功的八进制数将被表示为377。当您第一次在服务器上启动ntp守护进程时,这个数字可能需要一段时间才能达到377。

最后3列,我们有delay、offset和jitter列。delay列表示到达服务器的延迟时间,单位为毫秒。offset指的是本地时钟和服务器时钟之间的差异。jitter列指的是remote和refid服务器之间的网络延迟。


由于前两列信息比较重要和复杂,以下对前两列详细详细说明:

  1. remote:本列根据配置直接访问的NTP服务器的主机名、非限定域名(FQDN)或者IP地址。而第一个字符为时钟同步状态,不同状态描述如下:
    • x表示超出公差(被交集算法丢弃),不使用;
    • -表示超出容忍(被交集算法丢弃),不使用;
    • #表示良好的远程对等体或服务器,但未被使用(不在按同步距离排序的前六个对等体中,准备作为备份源);
    • +表示好的和首选的远程对等体或服务器(包含在组合算法中);
    • o表示PPS对等体(当首选对等体有效时)。实际的系统同步是由脉冲/秒(PPS)信号派生的,或间接通过PPS参考时钟驱动或直接通过内核接口。
  2. refid:本列显示最终获取时钟的服务器的IP地址,除了直接显示IP地址之外,本列也会通过其他的一些字符来显示远程时钟服务器访问的状态,描述如下:
    • .LOCL. - 这个本地主机(最低层的位置标记,以防没有远程对等体或服务器可用);
    • .PPS. - “每秒脉冲”来自时间标准;
    • .IRIG. - 量程仪表组时间代码;
    • .ACTS. - 美国NIST时间标准电话调制解调器;
    • .NIST. - 美国NIST时间标准电话调制解调器;
    • .PTB. - 德国PTB时间标准电话调制解调器;
    • .USNO. - 美国USNO时间标准电话调制解调器;
    • .CHU. - CHU (HF,渥太华,ON,加拿大)时间标准无线电接收机;
    • .DCFa. - DCF77 (LF, Mainflingen,德国)时间标准无线电接收机
    • .HBG. - HBG(瑞士LF Prangins)时间标准无线电接收机;
    • .JJY. - JJY(日本LF福岛)时间标准无线电接收机;
    • .LORC. - 罗兰- c电台(MF)时间标准无线电接收机;
    • .MSF. - MSF (LF,英国安桑)时间标准无线电接收机;
    • .TDF. - TDF (MF,法国阿卢瓦)时间标准无线电接收机;
    • .WWV. - WWV (HF, Ft. Collins, CO, 美国)时间标准无线电接收机;
    • .WWVB. - WWVB (LF, Ft. Collins, CO, 美国)时间标准无线电接收机;
    • .WWVH. - WWVH(高频,考艾岛,HI,美国)时间标准无线电接收机;
    • .GOES. - 美国地球同步轨道环境卫星;
    • .GPS. - 美国的全球定位系统(GPS);
    • .GAL. - 伽利略欧洲卫星导航系统;
    • .ACST. - manycast服务器;
    • .AUTH. - 验证错误;
    • .AUTO. - 自动键序列错误;
    • .BCST. - 广播服务器;
    • .CRYPT. - 自动键协议错误;
    • .DENY. - 服务器拒绝访问;
    • .INIT. - 初始化错误;
    • .XFAC. - 关联改变(IP地址改变或丢失);
    • .MCST. - 多播服务器;
    • .RATE. - 轮训频率过高;
    • .TIME. - 超时;
    • .STEP. - 步长时间变化时,偏移量小于恐慌阈值(1000ms)但大于步长阈值(125ms)。

更多细节,可以参考ntpq系统命令手册以及相关RFC文档。



计算机软件 Share Tweet +1