一、服务介绍
NTP(Network Time Protocol,网络时间协议)是用来使计算机时间同步化的一种协议。它可以使计
算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,
WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议***。
二、运行模式
模式: C/S 模式
运行模式:
三、NTP服务器环境的配置
1.实验环境
NTP服务端:localhost1.cn IP:192.168.10.63
NTP客户端:localhost2.cn IP:192.168.10.64
2.NTP服务器的配置
[root@localhost ~]# rpm -ivh/mnt/Packages/ntpdate-4.2.6p5-1.el6.x86_64.rpm
[root@localhost ~]# /etc/init.d/ntpd restart
[root@localhost ~]# vim /etc/ntp.conf ntp 的配置文件
[root@localhost ~]# ntpdate server0.rhel.pool.ntp.org 同步ntp时间报错
13 Nov 18:33:47 ntpdate[8145]: the NTPsocket is in use, exiting
原因
出现该错误的原因是系统ntpd服务器正在运行中,通过 ps aux | grep ntpd 查看,会看到ntpd正在运行。
解决办法
[root@localhost ~]# /etc/init.d/ntpd stop 停止服务
备注:这里需要虚拟机可以连接到外网
搭建一个内网NTP服务器,让内网服务器通过此NTP服务器进行时间同步
[root@localhost ~]# vim /etc/ntp.conf
11 # Permit all access over the loopbackinterface. This could
12 #be tightened as well, but to do so would effect some of
13 #the administrative functions.
14restrict 127.0.0.1 如果无同步时间,就和本地系统时间同步。
15restrict -6 ::1
16
17 #Hosts on local network are less restricted.
18 restrict 192.168.10.0mask 255.255.255.0 nomodify notrap
允许同步的本地局域网时间
19
20 # Use public serversfrom the pool.ntp.org project.
21 # Please considerjoining the pool (http://www.pool.ntp.org/join.html).
22 server 128.138.141.172
指定本NTP服务器的上游NTP服务器为128.138.141.172,并且设置为首先服务器。同步时间为,从上到下,写的越靠上,优先级越高。(写在所有server最前面IP地址为首先服务器,此服务器同步不了时间,寻找下一个NTP服务器)。此IP地址是日本福冈大学NTP服务器。 在原配置文件中添加一个外网NTP服务器
23 server 1.rhel.pool.ntp.org iburst
24server 2.rhel.pool.ntp.org iburst
25server 3.rhel.pool.ntp.org iburst
在启动NTP服务前,先对提供服务的这台主机手动的校正一次时间。 ntpd 有一个自我保护设置: 如果本机与上源时间相差太大, ntpd 不运行.
[root@localhost ~]# ntpdate cn.pool.ntp.org
13 Nov 18:58:31 ntpdate[8214]: adjust timeserver 202.112.29.82 offset 0.000931 sec
[root@localhost ~]# /etc/init.d/ntpd start 启动服务
[root@localhost ~]# ntpstat
synchronised to NTP server(128.138.141.172) at stratum 2 #可以看到我们当前在2层。
time correct to within 470 ms # ms毫秒是一种较为微小的
polling server every 128 s 轮询时间
[root@localhost ~]# ntpq –p 列出我们的NTP服务器与上游服务器的连接状态
remote refid st t when poll reach delay offset jitter
==============================================================================
*utcnist2.colora .ACTS. 1 u 466 128 150 337.011 14.735 60.291
dns.sjtu.edu.cn .INIT. 16 u - 1024 0 0.000 0.000 0.000
+dns1.synet.edu. 202.118.1.46 2 u 233 128 176 115.893 99.310 68.327
参数说明
指令“ntpq -p”可以列出目前我们的NTP与相关的上层NTP的状态,以上的几个字段的意义如下:
remote:即remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先。
st:即stratum阶层 poll:下次更新在几秒之后 offset:时间补偿的结果
客户端同步时间
说明:在启动NTP服务前,先对提供服务的这台主机手动的校正一次时间。 ntpd 有一个自我保护设置: 如果本机与上源时间相差太大, ntpd 不运行.
[root@localhost ~]# date
2015年 11月 13日 星期五 20:11:34 CST
[root@localhost1 ~]# date 同步时间前
2015年 11月 13日 星期五 20:09:39 CST
[root@localhost1 ~]# ntpdate 192.168.10.63 同步时间
13 Nov 20:12:53 ntpdate[7737]: step timeserver 192.168.10.63 offset 130.847558 sec
[root@localhost1 ~]# date
2015年 11月 13日 星期五 20:13:00 CST
拓展
linux系统时间和BIOS时间是不是一定一样?
查看硬件BIOS时间:
hwclock-r :读出BIOS的时间参数
hwclock-w :将当前系统时间写入BIOS中。
为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。
同步时间,可以使用ntpdate命令,也可以使用ntpd服务。
通常采用crontab 做计划任务
0 12 * * * /usr/sbin/ntpdate 0.rhel.pool.ntp.org