NTP服务器的配置和使用

为了避免Linux系统的主机,在长时间运行下所导致的时间偏差。因此我们需要对时间进行时间同步(synchronize)。我们一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,他是通过UDP协议,对时间进行同步的。

ubuntu下NTP-Server安装及配置

安装NTP包

sudo apt-get install ntp

NTP配置

编辑NTP Server的主要配置文件为/etc/ntp.conf ,如下:

driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
#server 0.ubuntu.pool.ntp.org
#server 1.ubuntu.pool.ntp.org
#server 2.ubuntu.pool.ntp.org
#server 3.ubuntu.pool.ntp.org
server s1a.time.edu.cn prefer
server s2a.time.edu.cn
server s2b.time.edu.cn
server s2e.time.edu.cn
#server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 5
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 172.17.0.0 mask 255.255.0.0 nomodify
restrict 127.0.0.1
restrict ::1

配置含义:

restrict s2a.time.edu.cn prefer
server s2a.time.edu.cn
server s2b.time.edu.cn
server s2e.time.edu.cn   
server 127.127.1.0
fudge 127.127.1.0 stratum 5

设定NTP主机来源,其中prefer表示优先同步的主机

restrict 172.17.0.0 mask 255.255.0.0 nomodify 

restrict 控制相关权限
语法为: restrict IP地址 mask 子网掩码 参数
其中IP地址也可以是default ,default 就是指所有的IP
参数有以下几个:
ignore :关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网 NTP4.2 版本以后使用会出错
noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器
notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。
nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟
kod : 访问违规时发送 KoD 包。
restrict -6 表示IPV6地址的权限设置。

server 127.127.1.0  

只有在上级时钟源失效时,NTP才会使用127.127.1.0的本地时钟,将local时间作为ntp服务器时间提供给ntp客户端。NTP把本地主机的时钟也看作外部时钟源来处理,分配的地址是127.127.1.0

fudge  127.127.1.0 stratum 5

设置本地时钟源的层次为5,这样如果NTP服务从本地时钟源获取时间的话,NTP对外宣布的时间层次为6

配置完毕,重启NTP服务,使配置更改生效。

service ntp restart

查看NTP服务和上级连通状态

ntpq -p

《NTP服务器的配置和使用》 image.png

remote: 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先
refid:参考上一层ntp主机地址
st:stratum阶层
when:多少秒前曾经同步过时间
poll:下次更新在多少秒后
reach:已经向上层ntp服务器要求更新的次数
delay:网络延迟
offset:时间补偿
jitter:系统时间与bios时间差

配置内网NTP-Clients

内网其他设备作为NTP的客户端配置,相对就比较简单,而且所有设备的配置都相同。
首先需要安装NTP服务(与NTP-Server完全一样)。然后找其中一台配置/etc/ntp.conf文件,配置完成验证通过后,拷贝到其他客户端机器,直接使用即可。
注释掉之前的上层服务,以下几行

pool 0.ubuntu.pool.ntp.org 
pool 1.ubuntu.pool.ntp.org
pool 2.ubuntu.pool.ntp.org
pool 3.ubuntu.pool.ntp.org
pool ntp.ubuntu.com

添加本地的NTP服务器即可完成配置

server 172.17.30.100 prefer

可以用date命令查看时区
如果时区是EST需要改成CST

sudo tzselect

选择亚洲 /中国 /北京 /然后确认
改完后执行如下复制语句

 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

使用

ntpdate -d -u 172.17.30.100

172.17.30.100为你的NTP服务器的ip地址,显示adjust time server 192.168.1.135 offset 0.004882 sec
这里有可能出现同步失败,一般情况下原因都是本地的NTPD服务器还没有正常启动起来,一般需要几分钟时间后才能开始同步。
也有报错 no server suitable for synchronization found,这种问题由一下两种情况造成:
Server dropped: strata too high:
并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。
这种问题往往是由ntp服务启动后还没有和上层服务同步完成,可以等五分钟再次查看。
Server dropped: strata no data:
这种问题一般是因为访问不到NTP服务,需要检查NTP服务是否启动成功,或者是否是被防火墙拦截。
启动NTP_Client

service ntp start

启动后,查看同步情况

ntpq -p

由于是内网,NTP服务很快会同步上,可以使用下面命令查看时间是否和服务器时间相同

date

本机客户端配置完成后,需要同步的客户端机器使用SCP拷贝/etc/ntp.conf,命令如下,启动NTP服务即可。

scp 172.17.30.1:/etc/ntp.conf /etc/ntp.conf

Linux的NTP配置总结
NTP服务及时间同步问题

    原文作者:whiffet
    原文地址: https://www.jianshu.com/p/e5e486c8e365
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞