1.测试坏境
虚拟主机中安装的Centos 6.9
安装的软件NTP
2.NTP原理
NTP(network time protocol 网络时间协议)用于同步计算机和网络设备的内部的时间一种协议。
① Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00am(T1)。
② 当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。
③ 当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。
④ 当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。
假设请求数据包和恢复数据包传输的时间相同都为a,设备A和设备B的时间差为b则根据以上信息可以得到:
2b=(T2-T1)+(T3-T4) 2a=(T2-T1)+(T4-T3)
工作模式:客户端/服务器、对等模式、广播模式、组播模式
3.软件安装
使用yum list installed|grep ntp
看到有@base表示已经安装了ntp软件,ntpdate软件是用来和其他服务器做时间校对的软件,但是网络上有看到不建议使用,但是当我们百度linux时间调整他是最容易被搜索到的,最后会讨论他们两个的区别。另外还有个修改时间的rdate。也可以使用命令:rpm -qa|grep ntp
查看效果一样的。
安装后重要文件
rpm -ql ntp
和rpm -ql ntpdate
4.配置文件
在配置之前首先查看是否可以启动 /etc/rc.d/init.d/ntpd start 可以正常启动
ps -aux|grep ntp可以查看启动情况 另外尝试使用ntpd start发现这个是一个命令不是启动。使用whereis命令查看ntpd 对应的是/etc/sbin/ntpd这个是进程文件。启动文件是/etc/rc.d/init.d/ntpd。
NTP的配置文件相对来说比较简单,具体见下面的配置实例:
NTP 服务的端口号是123协议是UDP,注意防火墙开发
以上我已经解释了配置文件的各个项的作用。
还修改/etc/ntp/stpe-tickers文件,内容如下(当ntpd服务启动时,会自动与该文件中记录的上层NTP服务进行时间校对)这个文件和主配置文件的选项sever功能特别像那么有什么区别呢?
[root@localhost ntp]# more /etc/ntp/step-tickers
\# List of servers used for initial synchronization.
[root@localhost ntp]# vi /etc/ntp/step-tickers
\# List of servers used for initial synchronization.
server 192.168.7.49 prefer
server 0.rhel.pool.ntp.org
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org
server 3.rhel.pool.ntp.org
区别:step-tickers is used by ntpdate where as ntp.conf is the configuration file for the ntpd daemon. ntpdate is initially run to set the clock before ntpd to make sure time is within 1000 sec. ntp will not run if the time difference between the server and client by more then 1000 sec ( or there about). The start up script will read step-tickers for servers to be polled by ntpdate.
以上英文的意思 一个ntp的配置文件,一个是ntpdate的
ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。允许BIOS与系统时间同步,也可以通过hwclock -w 命令。
在使用过程中一定要防火墙对123端口的设置。
5.NTP启动停止等测试
service ntpd status #查看ntpd服务状态
service ntpd start #启动ntpd服务
service ntpd stop #停止ntpd服务
service ntpd restart #重启ntpd服务
ntpq -p 列出所有作为时钟源校正过本地FTP服务器的上层服务器的列表
ntpstat 本地服务器与上层服务器进行了同步本地服务器为4、3层偏差小于1014ms或者218毫秒 每64s查询一次上层服务器的时间
至于在linux系统和windows下如何校正时间应该不用我在说了吧。时间服务器都会搭建再不知道这个就有点说不过去的啊。
remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先
refid - 参考上一层ntp主机地址
st - stratum阶层
when - 多少秒前曾经同步过时间
poll - 下次更新在多少秒后
reach - 已经向上层ntp服务器要求更新的次数
delay - 网络延迟
offset - 时间补偿
jitter - 系统时间与bios时间差
6.ntpd和ntpdate
ntpd在实际同步时间时是一点点的校准过来时间的,最终把时间慢慢的校正对。而ntpdate不会考虑其他程序是否会阵痛,直接调整时间。
一个是校准时间,一个是调整时间。
linux系统:
ntpdate 198.17.16.20(我的自己的内网)
rdate -s 198.17.16.20(也可以)
windows: