应用场景
- 我们公司是做智慧交通的,主要卖交通相关的硬件和软件。硬件包括信号机、雷达、雷视、边缘盒子等,软件包括信控平台、管控平台等
- 路口前端设备,信号机设备、雷达设备、边缘计算单元等,还有一些第三方的卡口设备,以及机房里用到的各个服务器,都有时间设置
- 如果硬件设备与各个服务器之后,时间相差很大,那么会出现很多诡异的问题,而这些问题排查起来十分痛苦
- 而对于不同设备采集到的交通数据,要做数据拟合,时间可能要保持一致精确到毫秒
- 设置服务器之间时间同步,就是为了保持时间同步,为了避免很多问题的发生
- 我们客户是交通部门(交接大队、支队、一些交通研究院、实验室之类的),一般都是视频专网、公安内网或者自己的内网环境,无法使用互联网校时,但是他们一般都有自己的时间服务器
- 我们的平台部署在linux系统里,可以与时间服务器校时,我们的硬件设备会与平台校时,这样就能保持时间一致
基础知识
- NTP:Network Time Protocol的简称,用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可以由加密确认的方式来防止恶毒的协议攻击
- 由CentOS 7.9操作系统组成的内网集群,使用NTP配置集群时间同步
- 选定一台机器配置为时间服务器,集群中其它机器同步指定的时间服务器的时间。使用此方式达到集群节点时间一致
- 可以使用
date
命令,查看或者设置当前系统的时间
- 可以使用
ntpdate
命令,手工临时同步系统时间(前提是配置的时间服务器可以联通,默认有配置,但是内网环境是不通的,要用自己内网内的时间服务器)
- 可以使用
ntpd
命令,查看ntpd配置。ntpd服务作为守护进程,按照一定的算法进行时间同步,即使你启动了该进程,ntpd也不会立刻进行时间同步
- 另外说一下,ntp服务是CentOS7.9系统自带的服务,不需要另外安装,如果是其他系统版本,可能需要先安装此服务,使用yum或者apt-get安装即可
服务端操作步骤
- 这个是设置时间同步服务器需要的步骤,如果你的机房里已经有了时间服务器,就不需要此步骤了
- 或者说,直接使用网络校时,使用默认配置也可以,这一步也可以省略
- 如果机房为内网环境,也没有时间服务器,就需要把其中一台机器作为时间服务器,所有机器和设备,与此机器进行校时,保持一致
- 当然,时间服务器本身的时区和时间,一定要设置正确,并写入硬件时间,可参考我这篇博客:CentOS7等linux系统时区时间不对显示误差8小时
- 需要修改/etc/ntp.conf文件,启动ntp时间同步。启用ntpd服务,设置开机启动
systemctl enable ntpd.service
systemctl start ntpd.service
- 修改/etc/ntp.conf文件
vi /etc/ntp.conf
- 修改内容,在/etc/ntp.conf中注释掉以下server 部分。
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10
- 重启ntpd服务,使其生效
systemctl restart ntpd.service
客户端操作步骤
- 如果是公网(互联网)环境,只要启用ntp服务即可,默认是已经配置了几个时间服务器地址
- 直接使用
ntpdate
命令就可以同步一次,再启用服务就能定时同步
- 如果是内网环境,需要修改/etc/ntp.conf文件,步骤与上面的服务端设置基本一致,核心就是改文件重启
- ntp时间同步。启用ntpd服务,设置开机启动
systemctl enable ntpd.service
systemctl start ntpd.service
- 服务器NTP服务,配个同步服务器,修改/etc/ntp.conf文件
vi /etc/ntp.conf
- 加时间服务器加进去,修改内容,在/etc/ntp.conf中注释掉以下部分。
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.19.151(时间服务器ip)
fudge 192.168.19.151 stratum 10
- 重启ntpd服务,使其生效
systemctl restart ntpd.service