NTP相关配置

转自:http://huobumingbai.blog.51cto.com/1196746/439698

1.         简介
NTP(Network Time Protocol)服务器是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正,在LAN上与标准间差小于1毫秒,WAN上几十毫秒,且通过加密确认的方式来防止恶毒的协议攻击。
2.         文件结构
1)         配置文件

 

目录名称
应用说明
/etc/ntp.conf
NTP服务的主要配置文件,不同的Linux版本文件所在的目录可能会不同
/usr/share/zoneinfo
规定了各主要时区的时间设定文件,例如中国大陆地区的时区设置文件是/usr/share/zoneinfo/Asia/Shanghai
/etc/sysconfig/clock
Linux的主要时区设定文件。每次启动后Linux操作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为”ZONE=Asia/Shanghai”,则表示Linux操作系统的时间设定使用/usr/share/zoneinfo/Asia/Shanghai这个文件
/etc/localtime
本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Shanghai,Linux操作系统就会将Shanghai那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Shanghai那个时间设定文件为准

 

2)         有关的执行文件

 

命令名称
应用说明
/bin/date
Linux系统中的修改及输出日期与时间命令
/sbin/hwclock
主机的BIOS时间与Linux系统时间是分开的,所以使用date命令调整时间之后,只是调整了Linux的系统时间。还需要使用hwclock才能将修改过后的时间写入BIOS,这个命令必须root用户才能执行
/usr/sbin/ntpd
NTP服务的守护进程文件,需要启动它才能提供NTP服务
/usr/sbin/ntpdate
NTP客户端用来连接NTP服务器命令文件
/usr/sbin/ntpq
标准的网络计时协议(NTP)查询程序
/usr/sbin/_ntptrace
跟踪网络计时协议主机链到它们的控制时间源
/sbin/clock
调整电脑硬件时间RTC,执行这个命令可以显示现在时刻。调整硬件时钟的时间将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟

 

说明:Linux时钟系统在分类和设置上与Windows不同的是它将时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,RTC)两种,系统时间是指当前Linux Kernel中的时钟;硬件时钟则是主板上由电池供电的主板硬件时钟,这个时钟可以在BIOS中设置。当Linux启动时,硬件时钟会读取系统时钟的设置,然后系统时钟就会独立于硬件运行
3)         重要主配置文件详解

 

Ø 设定客户端同步规则
格式
restrict ip地址 mask子网掩码 参数
其中ip可以为ip地址或default,default指所有ip
参数解释(如果未设定参数表示对该IP或子网没有任何限制)
ignore:关闭所有的NTP联机服务
nomodify:客户端不能更改服务端的时间参数,但是可以通过服务端进行网络校时
notrust:客户端除非通过认证,否则其来源将被视为不信任子网
noquery:不提供客户端的时间查询
Ø 设定上级时间服务器
格式
Server IP地址或域名  [prefer]
参数解释
IP地址或域名为指定的上级时间服务器,如果在Server参数后加上prefer,表示NTP服务器主要以其主机时间校准
Ø 广播时间
格式
broadcast 网段
解释
ntpd在子网中的网络上定期广播NTP时间,如broadcast 192.168.255.255表示在192.168.0.0/16的网络上定期广播NTP时间
Ø 时间记录
格式
driftfile文件名
解释
与上级时间服务器联系时所花费的时间记录在driftfile参数后面的文件中,driftfile后面需要使用完整的路径文件名,不能是连接文件,并且文件的权限需要设定为ntpd守护进程且可以写入
Ø 时间级别
格式
fudge IP地址 stratum 级别
解释
fudge项用于为这个时钟设置级别。对待内部系统时钟的比较理想的情况是将时间源作为级别10来对待,这样访问真正NTP服务器的客户端将与这些服务器同步
3.         配置
1)         配置一,允许任何IP的客户机都可以进行时间同步
Ø 修改配置文件

 

在配置文件中将restrict default kod nomodify notrap nopeer noquery修改为restrict default nomodify
Ø 重启服务

Ø 测试
修改Linux系统时间
打开修改时间界面

在Linux系统右上角的时间处单击鼠标右键,选择Adjust Date & Time
修改时间


在Network Time Protocol选项卡中把Enable Network Time Protocol前面的勾去掉

将时间修改,这里把时间从21:55:38修改为1:55:0,单击OK
Windows同步时间(Windows NTP客户端的应用)
图形界面操作
打开修改时间界面

双击Windows右下角的时间
日期和时间

提示在获取最近一次同步状态时出错。RPC服务器不可用。其实是系统服务里的Windows Time服务没有启动
开启服务
 
 
如果启动该服务时提示:错误1058:无法启动服务,原因可能是已被禁用与其相关联的设备没有启动。原因是windows time服务失效,需要修复,开始 à运行然后键入w32tm /register,单击确定

再次同步

 

同步成功
命令行下操作
停止服务

开启服务

设置同步

命令成功完成后需重启下服务
2)         配置二,只允许192.168.129.***网段的客户机进行时间同步
Ø 修改配置文件

 

将上面配置后的配置文件中的restrict default nomodify修改成restrict default kod nomodify notrap nopeer noquery并再添加一行restrict 192.168.129.0 mask 255.255.255.0 nomodify只允许192.168.129.0/24网段的IP进行同步
Ø 重启服务

Ø Linux同步时间(Linux NTP客户端的应用)
命令行

输入date显示当前时间为11:07:37,输入ntpdate 192.168.129.130与时间服务器同步时间,再次输入date,此时显示时间为2:19:09,同步成功
图形界面

鼠标在Linux系统的右下角时间处单击右键,选择Adjust Date & Time

勾选启动网络时间协议并输入NTP服务器的IP地址单击确定

同步到时间为2:23,同步成功
设置自动同步

 

写入上面的语句

重启服务,每天晚上9点进行同步
查看ip

可以看到此时系统使用的IP地址为192.168.129.100/24的地址
不同网段同步测试

本地连接所使用的IP地址是10.1.32.163/23的地址,按照刚才的配置,不可以同步时间

同步出错,时间例子被拒绝,测试成功
3)         自动启动服务
如果每次启动系统自动启动NTP服务,输入

4.         管理
1)         查看123端口

输入netstat –unl | grep 123 查看123端口
2)         查看NTP进程

输入ps -ef | grep ntp 查看NTP进程是否启动
3)         监控NTP服务器
ntpq用来监视ntpd操作,ntpq -p查询网络中的NTP服务器,同时显示客户端和每个服务器的关系

 

位置
标志
含义
remote之前
*
响应的NTP服务器和最精确的服务器
+
响应这个查询请求的NTP服务器
blank(空格)
没有响应的NTP服务器
列表上方
remote
响应这个请求的NTP服务器的名称
refid
NTP服务器使用的更高一级服务器的名称
st
正在响应请求的NTP服务器的级别
when
上一次成功请求之后到现在的秒数
poll
本地和远程服务器多少时间进行一次同步,单位秒, 在一开始运行NTP的时候这个poll值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小
reach
用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加
delay
从本地机发送同步要求到ntp服务器的往返时间
offset
主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于0,主机和ntp服务器的时间越接近
jitter
统计了在特定个连续的连接数里offset的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确

猜你喜欢

转载自javan.iteye.com/blog/1542689