Mac修改ntp地址同步时间

背景:
有个本地模拟时间的插件,需要严格的时间检测,这样的话就需要保证本地和网络时间严格一致!

1、检测本地时间和网络时间相差多少
访问https://time.is/zh/,就可以看到本地时间和网络时间的差值,该网站是精确的官方原子钟时间,时间准确度较高。

2、检查本地的ntp更新

1
2
3
4
5
6
7
8
> ntpq -p

# 正常是这样显示的,如果配置了一个地址就只会显示一行
remote refid st t when poll reach delay offset jitter
==============================================================================
*203.107.6.88 10.137.55.181 2 u 222 256 367 18.018 -53.573 376.501
+114.118.7.161 123.139.33.3 2 u 490 256 376 31.113 -626.99 325.271
+120.25.115.20 10.137.53.7 2 u 205 256 377 36.917 -53.016 430.399

字段解释:

  • remote – 用于同步的远程节点或服务器。“LOCAL”表示本机 (当没有远程服务器可用时会出现)
  • refid – 远程的服务器进行同步的更高一级服务器
  • st – 远程节点或服务器的 Stratum(级别,NTP 时间同步是分层的)
  • t – 类型 (u: unicast(单播) 或 manycast(选播) 客户端, b: broadcast(广播) 或 multicast(多播) 客户端, l: 本地时钟, s: 对称节点(用于备份), A: 选播服务器, B: 广播服务器, M: 多播服务器, 参见“Automatic Server Discovery“)
  • when – 最后一次同步到现在的时间 (默认单位为秒, “h”表示小时,“d”表示天)
  • poll – 同步的频率:rfc5905建议在 NTPv4 中这个值的范围在 4 (16秒) 至 17 (36小时) 之间(即2的指数次秒),然而观察发现这个值的实际大小在一个小的多的范围内 :64 (26 )秒 至 1024 (210 )秒
  • reach – 一个8位的左移移位寄存器值,用来测试能否和服务器连接,每成功连接一次它的值就会增加,以 8 进制显示
  • delay – 从本地到远程节点或服务器通信的往返时间(毫秒)
  • offset – 主机与远程节点或服务器时间源的时间偏移量,offset 越接近于0,主机和 NTP 服务器的时间越接近(以方均根表示,单位为毫秒)
  • jitter – 与远程节点同步的时间源的平均偏差(多个时间样本中的 offset 的偏差,单位是毫秒),这个数值的绝对值越小,主机的时间就越精确

remote字段中字符的解释,包含 “ “,”x”,”-“,”#”,”+”,”*”,”o”:

1
2
3
4
5
6
7
" "  无状态,表示: 没有远程通信的主机"LOCAL" 即本机 或(未被使用的)高层级服务器  远程主机使用的这台机器作为同步服务器
“x” 已不再使用
“-” 已不再使用
“#” 良好的远程节点或服务器但是未被使用 (不在按同步距离排序的前六个节点中,作为备用节点使用)
“+” 良好的且优先使用的远程节点或服务器(包含在组合算法中)
“*” 当前作为优先主同步对象的远程节点或服务器
“o” PPS 节点 (当优先节点是有效时)。实际的系统同步是源于秒脉冲信号(pulse-per-second,PPS),可能通过PPS 时钟驱动或者通过内核接口。

更多字段的解释请参考:https://linux.cn/article-4664-1.html

3、配置多个ntp地址
由于Mac的时间设置页面上是不能修改地址的,需要在对应的配置文件中修改。Mac中有两个配置ntp地址的文件,/etc/ntp.conf/private/etc/ntp.conf,两个文件会自动同步,修改其中一个即可。

编辑sudo vim /etc/ntp.conf,删除原有内容,将下面的几行复制进去,保存,退出,重启电脑。这是几个已知质量较好的ntp地址,别的地址都不是很可靠,顺带也把apple的ntp地址加上吧

1
2
3
4
server ntp.aliyun.com
server ntp.ntsc.ac.cn
server ntp1.aliyun.com
server time.asia.apple.com

4、再次检查时间
电脑重启后,再次访问https://time.is/zh/,查看时间差值是否在正常范围内

5、手动更新时间
如果某天突然发现电脑时间快了或者慢了,我们仍然可以用上面的ntp地址来手动更新。如果执行一次时间仍有较大差值,可以多执行几次

1
> sudo ntpdate -u ntp.aliyun.com

JouyPub wechat
欢迎订阅「K叔区块链」 - 专注于区块链技术学习