1.为什么需要时间同步

在了解这个问题前,需要先了解RTC、CST、UTC这些时间概念。

(1) RTC

在linux的系统中我们还可以看见一个 RTC时间,这个时间一般叫做硬件时间。也就是由计算机主板上的专门时钟芯片硬件产生的滴答信号计时得到。

(2)UTC

世界协调时间,UTC是世界上不同国家用来统一时间的标准。可以理解为我们地球的标准时间,基于SI标准的原子时间,由精度非常高的铯原子钟产生的滴答信号计时得到。UTC也就是零时区的时间。

(3)CST

关于CST有多重含有,但简单点理解就是各个国家所在时区的具体时间。

Central Standard Time (USA) UT-6:00(美国cst时间:零区时减6个小时)

Central Standard Time (Australia) UT+9:30(澳大利亚cst:加9个半小时)

China Standard Time UT+8:00(中国cst:加8个小时)

Cuba Standard Time UT-4:00  (古巴cst:减4个小时)
比如当UTC时间为0点时,中国的北京时间处于东8时区,因此中国CST时间为8点(UTC时间+8小时)。

现在就可以解释为什么需要时间同步了,因为RTC采用主板上的专门时钟芯片硬件计时,一方面是每个人电脑上的RTC起始计时时间都不一样,另一方面RTC计时精度误差较大。为了统一大家的时间,就需要让RTC在一段时间内去与UTC做个同步。可以理解为每天晚上8点整中央电视台在报时的时候,我们每个人将自己手表的时间同步调准。只不过计算机中的这个同步调准的周期要频繁很多,比如几分钟一次。

虽然RTC与UTC同步能解决时间统一的问题,但是如果世界上所有地方的人都使用UTC时间的话可能在生活上并不方便。最简答的一个例子就是,每个地区太阳升起的时间将不一样,对人们的依靠日出而作日落而息的生活习惯将有很大影响。因此需要根据UTC时间和地区所在的时区,将UTC换算成具体时区的时间CST,然后让RTC与CST进行同步。

2.常用时间同步工具

时间同步工具,其实就是在计算机之间执行时间同步请求的一个软件。遵循一套协议,让本地计算机向远程提供时间同步功能的服务器发起同步请求,然后远程提供时间同步功能的服务器将同步时间值返回给本地计算机,然后本地计算机利用服务器返回的时间值经过一定的计算得到本地时间。

目前比较流行的时间同步工具有ntp和chrony,ntp采用123/UDP端口通信,chrony采用323/UDP端口通信。由于ntp比较旧了,这里就采用chrony来进行时间同步。在ubuntu系统安装chrony,只需要运行下面这句命令:

sudo apt install chrony

chrony分为服务端程序chronyd和客户端程序chronyc,我们既可以用chronyd为其他计算机提供时间同步服务,也可以利用chronyc向其他时间同步服务器发起时间同步请求。下面将依次介绍chrony服务端和chrony客户端的配置方法。

3.配置chrony服务端

如果要让我们的chrony服务端能为互联网的所有计算机提供时间同步服务,需要将这个chrony服务端运行在公网服务器上,通常选用云服务器(我这里选的是一台阿里云服务器)。由于chrony采用323/UDP端口通信,因此需要先去我们的服务器控制台将进入服务器的323/UDP端口权限打开。

然后进入ubuntu服务器的/etc/chrony/chrony.conf对chrony服务端进行配置,这里主要关注一下几个参数:

  • server:用于指定外部时间同步服务器源地址,可以添加任意多个源地址。
  • pool:用于指定外部时间同步服务器池。
  • allow:允许特定IP的客户端计算机向本chrony服务器发送时间同步请求,如果设置成allow all表示允许所有网段的客户端计算机发送请求过来。
  • local stratum:允许在外部时间同步服务器不可用时,使用服务器本地时间作为返回值返回给发起请求的客户端计算机。

这里server源地址可以直接用阿里云默认提供的源,如下所示:

server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp2.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp2.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp3.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp3.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp4.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp4.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp5.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp5.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp6.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp6.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

为了方便测试,这里allow配置成allow all,也就是允许所有网段的客户端发送请求过来:

allow all

这里设置local stratum 10,允许在外部时间同步服务器不可用时,使用服务器本地时间作为返回值返回给发起请求的客户端计算机。

local stratum 10

对chrony服务端进行启动、停止、状态检查的方法,如下:

#启动chrony服务
service chrony start#重动chrony服务
service chrony restart#查看chrony服务状态
service chrony status#停止chrony服务
service chrony stop

4.配置chrony客户端

对应ubuntu系统客户端,进入ubuntu服务器的/etc/chrony/chrony.conf对chrony客户端进行配置。配置参数与上面chrony服务端的类似,只不过客户端不需要对外提供时间同步服务而只去请求数据,因此allow参数可以不用。

这里server源地址指定为上面我们chrony服务端的IP地址(具体IP地址去自己的云服务器控制台查看一下就知道了),大家可以将下面my_chrony_test.aliyuncs.com替换成自己的服务器地址,如下所示:

server my_chrony_test.aliyuncs.com minpoll 4 maxpoll 10 iburst

对chrony客户端进行启动、停止、状态检查的方法与上面服务端一样,如下:

#启动chrony客户端
service chrony start#重动chronyd客户端
service chrony restart#查看chrony客户端
service chrony status#停止chrony客户端
service chrony stop

然后就是chrony客户端上的一些常用命令:

#查看可用的时间同步源
chronyc sources -v#查看时间同步源的状态
chronyc sourcestats -v#对客户端系统时间进行强制同步
chronyc -a makestep

使用timedatectl管理本地系统时间:

#修改本地系统时间
timedatectl set-time "2022-03-01 10:01:01"#查看时区列表
timedatectl list-timezones
timedatectl list-timezones |grep Asia/S#修改时区
timedatectl set-timezone Asia/Shanghai#让RTC去和UTC进行同步
timedatectl set-local-rtc 0
#让RTC去和本地系统时间CST进行同步(不推荐)
timedatectl set-local-rtc 1#启用向外部时间同步服务器发起同步的功能
timedatectl set-ntp yes
#关闭向外部时间同步服务器发起同步的功能
timedatectl set-ntp no

5.总结

假设本地客户端计算机叫A,我们的服务器计算机叫B,外网时间同步源计算机叫C,时间同步的过程实际上就是A->B->C->...

A向B发起时间同步请求,让A与B的时间保持一致;

B为了维护自身的系统时间,以同样的方法要向C发起时间同步请求,让B与C的时间保持一致;

C可能还要进一步与其他外网时间同步源保持同步,总之就是时间同步时一层一层进行的。

在ubuntu上使用chrony进行系统时间同步的配置方法相关推荐

  1. 考虑分布式光伏储能系统的优化配置方法(源码公开)

    ** 提出了一种考虑分布式光伏储能系统的优化配置方法 ** 模型介绍: 采用双层模型,上层决策储能系统配置容量用粒子群算法求解 ,下层决策最优运行策略采用cplex求解器求解,算例为ieee 33节点 ...

  2. manjaro双系统 windows_在Windows基础上安装Manjaro双系统和基本配置

    本文最后更新于 2019 年 5 月 7 日,其中的内容可能有所发展或发生改变,敬请注意.头图截图自Manjaro默认桌面 这篇文章是小白向文章,大量使用了不优雅的GUI进行相关操作,请大神轻喷 引文 ...

  3. 机器学习实战第2版 00 python虚拟环境在Ubuntu/win(anacondavirtualenv)系统下的配置

    python 虚拟环境配置 虚拟环境的作用 关于本帖 虚拟环境的配置 Ubuntu 1 `安装`虚拟环境的命令 2 `创建`虚拟环境的命令 3 `使用`虚拟环境的命令 4 后台使用jupyter no ...

  4. Ubuntu下安装Audacious音乐播放器详细配置方法(中文化,歌词显示等)

    Windows下有不少比较有名气的音乐播放器,例如千千静听,Kugou,foobar和QQ音乐等,但是ubuntu下的音乐播放器则没有这么丰富,但是现在则给大家介绍一款ubuntu下的"千千 ...

  5. STM32系统时钟及配置方法

    什么是时钟 单片机如果要正常运行,时钟信号是必不可少的.作为CPU的脉搏,时钟的快慢决定了CPU的运行速率,执行指令的速度.一般时钟源会被分频器或倍频器分成多种频率的时钟,以满足系统的不同应用. 那么 ...

  6. linux上sendmail配置文件,linux系统SendMail详细配置

    1. 安装相关服务 DNS Mailserver(sendmail.imap) 2. 启动相关服务 Service named restart Service sendmail restart Ser ...

  7. Ubuntu下Nginx/PHP/MYSQL开发环境的配置方法

    最近将原来的程序都迁移到了Nginx下来了,用了Ubuntu也有一段时间大了,慢慢了习惯了下Linux的操作,在加上Linux下性能确实不错,就开始配置了. 配置了 Ubuntu 9.10  Ngin ...

  8. linux安全服务管理,Linux系统安全管理服务配置方法与技巧

    任何计算机安全措施的一个重要方面是维持实际控制服务的运行.本文向你展示了在Linux操作系统的PC机上如何配置安全服务管理. 任何计算机安全措施的一个重要方面是维持实际控制服务的运行,让不必要的网络服 ...

  9. Ghost系统前的配置方法大全

    办公室一族,天天和计算机打交道,而且大部分机器都挂在公司的局域网内,然后再通过代理挂到互联网上,计算机的配置也都比较好,这么惬意的环境,让每个计算机爱好者感觉非常舒适,但是由于局域网中病毒多,经常要重 ...

最新文章

  1. Net作业调度(一) -Quartz.Net入门
  2. sql复杂查询语句总结
  3. 社保,交得越多亏得越多(转)
  4. android 实现显示电量,Android开发:显示电池电量
  5. volatile关键字的作用
  6. 写给即将过去的2012
  7. Windows10安装ubuntu 20双系统
  8. 深度学习中的“卷积”与数学中的“卷积”有何不同
  9. 教程 | 如何使用Docker、TensorFlow目标检测API和OpenCV实现实时目标检测和视频处理
  10. springMvc--接受日期类型参数处理
  11. java修改文件后缀名_java批量修改文件后缀名方法总结
  12. java 传智播客 毕向东_传智播客,毕向东Java详细基础教程下载
  13. 物联网安全行业调研报告 - 市场现状分析与发展前景预测
  14. 计算机怎么打不开照相机图片,Win10系统相机打不开怎么办-电脑自学网
  15. 近期量子计算论文总结
  16. 文件的元数据信息的含义及查看和修改
  17. 2020软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!
  18. 人工智能免遥控 暴风65英寸人工智能电视X5 ECHO评测
  19. 使用爬虫爬取豆瓣电影影评数据Java版
  20. 开发时加载页面出现404,505等错误状态码的含义

热门文章

  1. 图文讲解如何使用Gmail绑定域名开通企业邮箱(使用时代互联的域名管理后台)
  2. Camunda流程驳回至上一节点
  3. 曾哥离过婚,前妻李宇春。
  4. 搜狗输入法的透明皮肤
  5. form action=./ 或者为form action=/ 的提交路径
  6. linux 下jenkins启动
  7. python数据结构与算法40题_Python数据结构与算法分析(笔记与部分作业)
  8. 用Delphip写新型QQ木马
  9. 并购数据库_项目团队的并购:如何有效地管理项目数据和流程?
  10. 蓝牙芯片排行_2020年4月TWS触摸芯片出货量排行榜