在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间?NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
当然,还有一种常见的用途就是当内网中的服务器都不能够直接连接互联网,它们只能通过少量的几台出口服务器连接互联网。为了让内网中的服务器的时间能够与互联网时间进行同步,避免因为时间不统一而造成的一些莫名其妙的问题,这时我们就可以将出口的服务器安装上NTP同步服务器,然后给内网中的一些机器设置定时任务去安装了NTP的服务器上更新时间。
(PS:以上内容参考了百度百科)
一 NTP服务端的安装:
1 安装NTP:
1
2
|
[root@prx01 ~]
# yum install -y ntp
[root@prx01 ~]
# ntpdate time.nist.gov
|
2 NTP服务器配置:
(1)修改ntp.conf配置文件:
1
|
[root@prx01 ~]
# vim /etc/ntp.conf
|
找到这个配置文件中的“restrict default nomodify notrap noquery”这一行,将之改成:
1
|
restrict default nomodify
|
这段配置就是将原来的“默认拒绝所有IP的时间同步”改成了“允许任何IP的客户机都可以进行时间同步”。当然,如果只想让指定的客户机能够进行时间同步的话,上面那段配置不用修改,同时在它的下面可以添加类似如下的内容:
1
|
restrict 192.168.100.0 mask 255.255.255.0 nomodify
|
表示只允许192.168.100.* 这个网段的客户机可以进行时间同步
同时,在这个文件中我们可以看到类似如下的配置:
1
2
3
4
|
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
|
这些配置标明了这个NTP服务器跟互联网上的哪个服务器进行时间同步。这里可以不用修改,也可以添加上这个时间同步服务器:
1
|
server cn.pool.ntp.org iburst
|
(2)设置开机自启:
1
|
[root@prx01 ~]
# chkconfig ntpd on
|
(3)重启ntpd:
1
|
[root@prx01 ~]
# service ntpd restart
|
然后可以通过下面这个命令查看跟互联网时间同步的详情:
1
|
[root@prx02 ~]
# watch ntpq -p
|
二 内网中客户机的配置:
(1)关闭ntpd:
1
|
[root@web01 ~]
# service ntpd stop
|
(2)同步时间:
1
|
[root@web01 ~]
# ntpdate -s 192.168.100.2
|
注:这个IP指的是刚才配置了NTP时间同步服务器的那台机器
(3)添加定时时间同步任务:
1
|
[root@web01
cron
]
# vim /var/spool/cron/root
|
添加以下内容:
1
2
|
0-59/10 * * * * /usr/sbin/ntpdate -s 192.168.100.2
0-59/10 * * * * /usr/sbin/ntpdate -s 192.168.100.3
|
注:刚才配置了几台NTP时间同步服务器这里就添上几个。同时这条命令指的是每10分钟就跟配置的NTP服务器进行一次时间同步
查看任务:
1
|
[root@web01 ~]
# crontab -l
|
(4)查看时间:
1
|
[root@web02 ~]
# date
|