Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击,NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。
为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。(转自百度知道)
OK,以上为扫盲,下面开始介绍如何搭建自己的NTP服务器,并设置局域网内其他机器进行NTP时间同步
(一)服务端(Linux Redhat)
1.首先检查系统是否安装了NTP,运行rpm -qa|grep ntp,如果有以下返回说明已安装,如果没返回就先去下载装一个吧
2.修改配置文件/etc/ntp.conf
部分参数说明如下(通常NTP不可用是因为用restrict限制了客户端的访问):
restrict 136.222.1.0 mask 255.255.255.0 nomodify(136.222.1.*使用此事件服务器,但是不可以更改此服务器时间)
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust(根据需要限制客户端使用此NTP服务器)
server 0.rhel.pool.ntp.org(此处设置了Internet上的服务器作为时钟源,可以根据需要自行设置)
3.启动NTP服务
使NTP服务可以在系统引导的时候自动启动,执行:
# chkconfig ntpd on
启动/关闭/重启NTP的命令:
# /etc/init.d/ntpd start
# /etc/init.d/ntpd stop
# /etc/init.d/ntpd restart
#service ntpd restart
将同步好的时间写到CMOS里
vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
每次修改了配置文件后都需要重新启动服务来使配置生效。
可以使用下面的命令来检查NTP服务是否启动,你应该可以得到一个进程ID号:
# pgrep ntpd
使用下面的命令检查时间服务器同步的状态:
# ntpq -p
用ntpstat 也可以查看一些同步状态,用netstat -ntlup查看端口使用情况!
(二)客户端
root运行以下命令即可同步时间:/usr/sbin/ntpdate ServerIP
注意:此时需要将ntpd服务关闭
出现以下界面证明OK
#crontab -e
加入以下行:
0 1 * * * /usr/sbin/ntpdate 136.222.1.70
每天凌晨一点到136.222.1.70机器同步时间~
完成!