网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC(Universal Time Coordinated)。NTP的主要开发者是美国特拉华大学的David L. Mills教授。

     NTP对于我们个人来说有什么用呢,简单的讲,当你的计算机时间不准确了,你可以接入到互联网,从网上同步一下时间,看多方便。

     对于企业来说,当你有成百上千的计算机,都不能直接连接互联网,时间不统一影响业务,如果一台一台的修改,那不得累死人啊。这时搭建一个自己的NTP服务器就显出它的优势了。

下面我们就来学习一下如何搭建自己的NTP时间服务器。


一、NTP服务器的安装

想要学习当然是得先安装上,不然怎么学?

安装方法有:

1、yum安装:

# yum -y install ntp


2、源码编译安装


#wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p4.tar.gz
# tar zxvf ntp-4.2.6.tar.gz
# cd ntp-4.2.6
# ./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
# make && make install


二、NTP的配置文件和相关命令

NTP的配置文件:

/etc/ntp.conf      NTP服务的配置文件。

1、权限的设定主要以 restrict 这个参数来设定,主要的语法为:
格式:restrict  IP地址   mask    子网掩码    参数

注:
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
参数有以下几个:
ignore :    关闭所有的 NTP 联机服务
nomodify: 客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :    客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery : 不提供客户端的时间查询


2、用server这个参数设定上级时间服务器,语法为:
格式:server  IP地址或域名 [prefer]

注:
IP地址或域名就是我们指定的上级时间服务器,如果 Server 参数最后加上 prefer,表示我们的 NTP 服务器主要以该部主机时间进行校准。


3、解决NTP服务器校准时间时的传送延迟
使用driftfile参数设置:
格式:driftfile 文件名
在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
注意:  driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。


4、各个配置文件作用

  • /usr/share/zoneinfo/     这个目录下存放的是各个时区对应的设定文件。

  • /etc/localtime              本地系统时间设定文件。

  • /etc/sysconfig/clock   本机时区设定文件。


5、相关命令:

  • date          修改和显示日期和时间的命令。

  • hwclock    将当前系统时间写入CMOS的命令,只有root用户才可以使用。

  • ntpd           NTP服务的守护进程文件,需要先启动它才能提供NTP服务。

  • ntpdate     客户端时间同步


三、配置NTP

# vim /etc/ntp.conf


//========权限控制============
restrict default kod nomodify notrap nopeer noquery     //拒绝IPV4用户
restrict -6 default kod nomodify notrap nopeer noquery   //拒绝IPV6用户
restrict 210.72.145.44 //授权国家授时中心服务器访问本地NTP      
restrict 133.100.11.8  //授权133.100.11.8访问本地NTP
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.100.0 mask 255.255.255.0 nomodify     //本地网段授权访问
//=========源服务器===========
server 210.72.145.44 prefer   //指定上级更新时间服务器,优先使用这个地址
server 133.100.11.8
//=========差异分析===========
driftfile /var/lib/ntp/drift
keys    /etc/ntp/keys


启动方式:

//YUM安装的启动方式
#service ntpd start 
//源码编译安装的启动方式
#/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid

注:ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。


# netstat -tlunp | grep ntp       //如果看到123端口,说明ntp服务成功启动。
# ntpstat          //查看ntp服务器与上级服务器是否通讯
# ntpq –p          //查看本地NTP与上级服务器的通讯情况


四、客户端如何更新时间


# ntpdate 192.168.100.10
//手工更新太麻烦,我们写个任务计划定时更新
# vim /var/spool/cron/root
0 1 * * * /usr/sbin/ntpdate 192.168.100.10


至此,ntp服务器已经配置完成!