什么是NTP?
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
NTP工作原理
NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC 源的远近将所有服务器归入不同Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。
计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。
为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。
网络校时协议(NTP)的实现,时间服务器可以利用以下三种方式与其他服务器对时:
broadcast/multicast
client/server
symmetric
broadcast/multicast方式主要适用于局域网的环境,时间服务器周期性的以广播的方式,将时间信息传送给其他网路中的时间服务器,其时间仅会有少许的延迟,而且配置非常的简单。但是此方式的精确度并不高,对时间精确度要求不是很高的情况下可以采用。
symmetric的方式得一台服务器可以从远端时间服务器获取时钟,如果需要也可提供时间信息给远端的时间服务器。
此一方式适用于配置冗余的时间服务器,可以提供更高的精确度给主机。
client/server方式与symmetric方式比较相似,只是不提供给其他时间服务器时间信息,此方式适用于一台时间服务器接收上层时间服务器的时间信息,并提供时间信息给下层的用户。
使用如下命令可同步时间并检查服务器地址的可用性
ntpdate 0.centos.pool.ntp.org
运行一个NTP Server不需要占用很多的系统资源,所以也不用专门配置独立的服务器,就可以给许多client提供时间同步服务。
下面是NTP服务器的配置(配置文件一般为/etc/ntp.conf)
restrict default kod nomodify notrap nopeer noquery //默认的client拒绝所有的操作
restrict 127.0.0.1 //允许本机地址一切的操作
restrict 192.168.1.0 mask 255.255.255.0 nomodify //允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
只有最后一条是需要自己添加的
再添加离我们最近的几个server选项
可以在下面的网站中找到我们所需要的时间服务器地址
http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers
使用NTP同步是只是system clock ,那么如何同步硬件时钟呢
需要修改一下/etc/sysconfig/ntpd文件中的SYNC_HWCLOCK的值
SYNC_HWCLOCK=no
↓
SYNC_HWCLOCK=yes
内部其他机器上面需要配置的就是修改/etc/ntp.conf中的server选项,指向到我们配置的服务器IP地址(主机名),就可以了。