admin 管理员组文章数量: 887021
文章目录
- 时间同步相关概念、知识点
- 两台电脑之间实现同步步骤:
- 安装软件:
- 1、ntp
- 常用命令
- 1、ntp相关命令
- 2、硬件时钟相关
- 3、date命令
- 4、timedatectl 命令
- 5、ntpdate 命令
- 6、查看服务连接和监听
- 7、修改时区
- 8、自动校时
- 配置ntp服务段、客户端
- 1、配置服务段
- 2、配置客户端
- 3、查看ntp服务是否配置完成
- 问题总结
- 1、sudo ntpdate 192.168.1.102的时候提示:the NTP socket is in use, exiting
- 2、使用ntpdate同步命令后没有实现同步
- 3、ntpd、ntpdate的区别
- 4、在xavier上hwclock -w 设置系统时钟为硬件时钟无效!!!
- 参考网址:
- Linux设置时间同步服务(ntp) 【详细】(首先安装ntp服务(ubuntu 16.02)、配置客户端、服务端)
- 通过NTP协议进行时间同步(ntp工作原理、报文格式、C#实现)
- Linux配置NTP时间同步 (客户端、服务端配置、以及配置说明、ntp和ntpdate的区别)
- NTP时钟同步原理及误差简析
时间同步相关概念、知识点
1、通过ntp服务实现两台电脑之间同步;
2、NTP(Network Time Protocol) 网络时间协议,是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,
它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒)。
3、由于我们使用的是局域网内两台电脑之间时间同步,所以理论误差可以做到1ms以内。(实测局域网内网络延时一般0.3毫秒)
4、一般开启NTPD服务同步前先用ntpdate先手动同步一次,免得本机与外部时间服务器时间差距太大,让ntpd不能正常同步。
5、一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock)
硬件时钟是指嵌在主板上的特殊的电路, 它的存在就是平时我们关机之后还可以计算时间的原因
系统时钟就是操作系统的kernel所用来计算时间的时钟. 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值 在Linux下系统时间在开机的时候会和硬件时间同步(synchronization),之后也就各自独立运行了
两台电脑之间实现同步步骤:
电脑A(IP:192.168.1.102):作为服务段,自动同步网络时间。
电脑B(IP:192.168.1.103):作为客户段,自动同步电脑A的时间。
1、电脑A自动同步网络使时间,并充当电脑B的时间同步服务器。
2、分别安装软件ntp、ntpdate,分别设置两台设备的时区。
3、电脑A配置完成后先关闭ntp服务,使用ntpdate同步第一次时间。之后启动ntp服务,平滑同步自己和网络时间。
4、电脑B配置完成后先关闭ntp服务,使用ntpdate同步第一次时间。之后启动ntp服务,平滑同步自己和电脑A的时间。
安装软件:
1、ntp
sudo apt-get ntp
sudo apt-get ntpdate
sudo apt-get ntpstat
常用命令
1、ntp相关命令
service ntp start 启动 启动后,一般需要5-10分钟左右的时候才能与外部时间服务器开始同步时间。
service ntp stop 停止
service ntp restart 重新启动
注意:ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。
2、硬件时钟相关
hwclock命令的作用是查看Linux中的硬件时间,也就是主板上BIOS的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间
hwclock 查看硬件时间
hwclock -s 将当前的硬件时间设置为系统时间
hwclock -w 将当前的系统时间设置为硬件时间
hwclock --show 查看硬件时钟
hwclock --set --date="20180604 22:46:55" 修改硬件时钟
3、date命令
date 命令的作用是查看和设置Linux中的系统日期时间
date 显示当前系统的时间
date +%参数 以指定格式控制输出日期和时间
date -s "18:58:48 2020-10-10 " 将当前系统时间设置为指定的日期
4、timedatectl 命令
timedatectl 查看系统时钟、硬件时钟、两者是否同步
timedatectl set-time "2016-04-25 21:53:50" 设置系统、硬件时间
timedatectl set-timezone Asia/Shanghai 设置时区
5、ntpdate 命令
ntpdate time.nist.gov
ntpdate time.windows
ntpdate 202.112.10.36 立即同步网络时间 (系统时区一定要对)
ntpdate 192.168.1.102 立即同步电脑A的时间 (系统时区一定要对)
手动同步一次时间:sudo ntpdate 192.168.1.102 (服务端主机IP,这里需要先关闭NTP服务哦)只更新了系统时钟,并不更新硬件时钟
hwclock -w 将当前的系统时间设置为硬件时间
timedatectl 查看时钟
6、查看服务连接和监听
netstat -tlunp | grep ntp
7、修改时区
修改时区
export TZ='Asia/Shanghai'
使时区生效
source ~/.bashrc
8、自动校时
设定crontab计划任务自动校时:
使用命令crontab -e
crontab -e
在里面写入下行命令
每天5:10自动进行网络校时,并同时更新BIOS的时间
10 5 * * * root /usr/sbin/ntpdate -u 210.72.145.44;hwclock -w
每隔一个小时同步一下internet时间,并同时更新BIOS的时间
* */1 * * * root ntpdatetime.nuri;hwclock -w
每隔2分钟执行,将输出日志到/var.log/ntpdate.log
*/2 * * * * /usr/sbin/ntpdate 192.168.109.101 >> /var/log/ntpdate.log
重启服务
service crond restart
配置ntp服务段、客户端
电脑A(IP:192.168.1.102):作为服务段,自动同步网络时间。
电脑B(IP:192.168.1.103):作为客户段,自动同步电脑A的时间。
1、配置服务段
NTP服务端配置文件编辑: vim /etc/ntp.conf (需要修改权限,不然默认为只读文件)
//将这行给注释
#restrict default nomodify notrap nopeer noquery
//然后添加这两行 ,意思是 允许IPV4 IPV6 查询 拒绝修改
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify
//添加修改上层时间服务器,如果能联通外网,则不需要修改,
server 0.rhel.pool.ntp iburst
server 1.rhel.pool.ntp iburst
server 2.rhel.pool.ntp iburst
server 3.rhel.pool.ntp iburst
//如果联不通外网,则把上面几行注释,然后添加下面两行,意思是设置成时间服务器是自己
server 127.127.1.0
fudge 127.127.1.0 stratum 8
2、配置客户端
vim /etc/ntp.conf
修改配置文件,添加上层时间服务器
注释掉:
17 #pool 0.ubuntu.pool.ntp iburst
18 #pool 1.ubuntu.pool.ntp iburst
19 #pool 2.ubuntu.pool.ntp iburst
20 #pool 3.ubuntu.pool.ntp iburst
21
22 # Use Ubuntu's ntp server as a fallback.
23 #pool ntp.ubuntu
配置时间服务器为本地的时间服务器
server 192.168.1.102
ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。
3、查看ntp服务是否配置完成
在ntp sever上执行 ntpq -p
在ntp client上执行 ntpq –p
如果反馈:
jd@jd:~/Desktop/time_test$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
192.168.1.102 ( .INIT. 16 u 18 64 0 0.000 0.000 0.000
ntpq -p
remote refid st t when poll reach delay offset jitter
1
==============================================================================
*202.112.10.36 202.112.10.60 2 u 277 128 314 201.553 9.193 17.068
+59.124.196.83 129.6.15.28 2 u 88 128 377 71.153 -25.111 14.004
LOCAL(0) .LOCL. 10 l 15 64 377 0.000 0.000 0.000
位置 标志 含义
符号 * 响应的NTP服务器和最精确的服务器
+ 响应这个查询请求的NTP服务器
blank(空格) 没有响应的NTP服务器
标题
remote 响应这个请求的NTP服务器的名称
refid NTP服务器使用的更高一级服务器的名称
st 正在响应请求的NTP服务器的级别
when 上一次成功请求之后到现在的秒数
poll 本地和远程服务器多少时间进行一次同步,单位秒,在一开始运行NTP的时候这个poll值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小
reach 用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加
delay 从本地机发送同步要求到ntp服务器的往返时间
offset 主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于0,主机和ntp服务器的时间越接近
jitter 统计了在特定个连续的连接数里offset的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确
问题总结
1、sudo ntpdate 192.168.1.102的时候提示:the NTP socket is in use, exiting
解决办法:关闭客户端ntp服务 service ntp stop
Shutting down ntpd: [ OK ]
2、使用ntpdate同步命令后没有实现同步
sudo ntpdate 192.168.1.102
28 Aug 17:27:34 ntpdate[28131]: adjust time server 192.168.1.102 offset 0.001403 sec
但没有实现同步两台电脑的时间。
解决查看系统时区是否正常。
3、ntpd、ntpdate的区别
下面是网上关于ntpd与ntpdate区别的相关资料。如下所示所示:
使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。
时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:
第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。
第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。
第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。
NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。
————————————————
版权声明:本文为CSDN博主「潮鳴」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn/willinge/article/details/79928726
4、在xavier上hwclock -w 设置系统时钟为硬件时钟无效!!!
解决办法:
开启ntp服务即可自动更新系统时钟到硬件。
sudo service ntp start
参考网址:
Linux设置时间同步服务(ntp) 【详细】(首先安装ntp服务(ubuntu 16.02)、配置客户端、服务端)
https://blog.csdn/qq_18769269/article/details/80609118
通过NTP协议进行时间同步(ntp工作原理、报文格式、C#实现)
https://wwwblogs/sheng1255blog/p/5121979.html
Linux配置NTP时间同步 (客户端、服务端配置、以及配置说明、ntp和ntpdate的区别)
https://blog.csdn/willinge/article/details/79928726
NTP时钟同步原理及误差简析
https://blog.csdn/hhcjb/article/details/84940823
版权声明:本文标题:两台电脑之间使用ntp做时间同步的总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726840183h1037561.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论