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) 重要主配置文件详解
Ø 设定客户端同步规则
l 格式
restrict ip地址 mask子网掩码 参数
其中ip可以为ip地址或default,default指所有ip
l 参数解释(如果未设定参数表示对该IP或子网没有任何限制)
ignore:关闭所有的NTP联机服务
nomodify:客户端不能更改服务端的时间参数,但是可以通过服务端进行网络校时
notrust:客户端除非通过认证,否则其来源将被视为不信任子网
noquery:不提供客户端的时间查询
Ø 设定上级时间服务器
l 格式
Server IP地址或域名
[prefer]
l 参数解释
IP地址或域名为指定的上级时间服务器,如果在Server参数后加上prefer,表示NTP服务器主要以其主机时间校准
Ø 广播时间
l 格式
broadcast 网段
l 解释
ntpd在子网中的网络上定期广播NTP时间,如broadcast 192.168.255.255表示在192.168.0.0/16的网络上定期广播NTP时间
Ø 时间记录
l 格式
driftfile文件名
l 解释
与上级时间服务器联系时所花费的时间记录在driftfile参数后面的文件中,driftfile后面需要使用完整的路径文件名,不能是连接文件,并且文件的权限需要设定为ntpd守护进程且可以写入
Ø 时间级别
l 格式
fudge IP地址 stratum 级别
l 解释
fudge项用于为这个时钟设置级别。对待内部系统时钟的比较理想的情况是将时间源作为级别10来对待,这样访问真正NTP服务器的客户端将与这些服务器同步
3. 配置
1) 配置一,允许任何IP的客户机都可以进行时间同步
Ø 修改配置文件
在配置文件中将restrict default kod nomodify notrap nopeer noquery修改为restrict default nomodify
Ø 重启服务
Ø 测试
l 修改Linux系统时间
n 打开修改时间界面
在Linux系统右上角的时间处单击鼠标右键,选择Adjust Date & Time
n 修改时间
在Network Time Protocol选项卡中把Enable Network Time Protocol前面的勾去掉
将时间修改,这里把时间从21:55:38修改为1:55:0,单击OK
l Windows同步时间(Windows NTP客户端的应用)
n 图形界面操作
u 打开修改时间界面
双击Windows右下角的时间
u 日期和时间
提示在获取最近一次同步状态时出错。RPC服务器不可用。其实是系统服务里的Windows Time服务没有启动
u 开启服务
如果启动该服务时提示:错误1058:无法启动服务,原因可能是已被禁用与其相关联的设备没有启动。原因是windows time服务失效,需要修复,开始
à运行然后键入w32tm /register,单击确定
u 再次同步
同步成功
n 命令行下操作
u 停止服务
u 开启服务
u 设置同步
命令成功完成后需重启下服务
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客户端的应用)
l 命令行
输入date显示当前时间为11:07:37,输入ntpdate 192.168.129.130与时间服务器同步时间,再次输入date,此时显示时间为2:19:09,同步成功
l 图形界面
鼠标在Linux系统的右下角时间处单击右键,选择Adjust Date & Time
勾选启动网络时间协议并输入NTP服务器的IP地址单击确定
同步到时间为2:23,同步成功
l 设置自动同步
写入上面的语句
重启服务,每天晚上9点进行同步
l 查看ip
可以看到此时系统使用的IP地址为192.168.129.100/24的地址
l 不同网段同步测试
本地连接所使用的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的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确
|
转载于:https://blog.51cto.com/huobumingbai/439698