Linux常用工具服务——NTP时间同步服务

时间同步介绍

(1) 计算机时钟用于记录事件的时间信息,如E-MAIL信息、文件创建和访问时间、数据库处理时间等
(2) 对时间敏感的计算机系统,如金融业界服务器、EDI、大型分布式商业数据库、航天航空控制计算机等,更需要高精度的时间信息
(3) 在集群以及需要集中记录服务器日志的环境中,时间同步非常重要

时间来源

现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取

北京时区是东八区,领先UTC 8个小时
UTC + 时区差=本地时间
CST(Central Standard Time 國家標準時間)
CST同时代表了下面4个时区:
CST:Central Standard Time (USA) 中部标准时间(美国) UTC -6:00
CST:Central Standard Time (Australia) 中部标准时间(澳大利亚) UTC 9:30
CST:China Standard Time 中国标准时间(北京时间) UTC 8:00
CST: Cuba Standard Time 古巴标准时间 UTC -4:00

系统时间和硬件时间

系统时间(System Time):由内核维护的时间 date
硬件时间(Hardware Time):由BIOS提供的时间
hwclock -w 将系统时间写入硬件时间

搭建NTP服务器

(1) 安装NTP服务程序 yum install -y ntp
(2) 设置NTP服务器

设置说明

【权限的设定】
主要以restrict这个参数来设定,格式如下:
restrict IP地址 mask 子网掩码 参数
其中IP可以是IP地址,也可以是default,default就是指所有的IP
参数如下:
ignore:关闭所有的NTP联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时
notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery:不提供客户端的时间查询
notrap:拒绝特殊的ntpdq捕获消息
如果参数没有设定,那就表示该IP(或子网)没有任何限制
#例如,只允许客户端192.168.213.0/24网段客户机进行时间校对
restrict 192.168.213.0 mask 255.255.255.0 nomodify notrap

【时间源的设定】
server IP地址或域名 [prefer]
IP地址或域名就是我们指定的上级时间服务器,如果Server参数最后加上prefer,表示我们的 NTP 服务器主要以该部主机时间进行校准
#如果要使用本地时间,将上面的server注释,添加下面两行
server 127.127.1.0 # local clock

【时间服务器的层次设定】
fudge 127.127.1.0 stratum 10
为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0

【driftfile设定】
driftfile 文件名
在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内
driftfile后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成ntpd守护进程可以写入
cp /etc/ntp.conf{,.bak}
#vim /etc/ntp.conf
设定权限
restrict 192.168.213.0 mask 255.255.255.0 nomodify notrap
修改时间源
server 0.cn.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 127.0.0.1
设定本机的时间服务层次
fudge 127.0.0.1 stratum 10

启动服务端 systemctl start ntpd
(3) 设置客户端

cp /etc/ntp.conf{,.bak}
#vim /etc/ntp.conf
修改时间源
server 192.168.213.129

NTP客户端同步

在服务器端使用ntpstat命令检测和上游服务器同步情况

[root@nfs01 ~]# ntpstat
synchronised to NTP server (162.159.200.123) at stratum 4
   time correct to within 1008 ms
   polling server every 64 s

ntpq –p 查看ntp服务器状态

[root@nfs01 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.cloudflare 10.23.12.51      3 u   51   64   17   52.100    1.063   1.542
 ns.al-abrarcom. .INIT.          16 u    -   64    0    0.000    0.000   0.000
 ns5.datautama.n 131.188.3.220    2 u  112   64    2  251.618   70.680   0.000
 localhost       .INIT.          16 l    -   64    0    0.000    0.000   0.000

remote:上层NTP服务器的IP或者主机名。主要最左边的*
*:代表目前正在使用中的上层FTP
+:已经连接成功,且可以作为下一个提供时间服务的候选人
refid:它指的是给远程服务器提供时间同步的服务器,本机上级的上级NTP服务器
st:就是stratum层级,最多有15层,减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器
when:几秒之前通不过时间
poll:在过多长时间去同步时间
reach:已经同步时间的次数
delay:网络传输过程中的延迟,单位是10的-6次方秒
offset:时间修正值,本地机和服务器之间的时间差别,单位是10的-3次方
jitter:linux系统时间(软件时间)与BIOS硬件时间的差异时间,单位是10的-6次方秒

客户端同步测试

[root@web01 ~]# ntpdate 192.168.213.129
14 Feb 16:55:31 ntpdate[1808]: step time server 192.168.213.129 offset -28740.633408 sec

常见错误提示

(1) no server suitable for synchronization found
由于每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接,当此时用户端连接服务器时会报这样错误
(2) 使用ntpdate命令同步时间总是不变,原因可能是时区不对,查看下是否是Asia/shanghai时区
(3) 检查防火墙配置:NTP服务器上使用UDP 123端口,防火墙需要打开该端口

发布了57 篇原创文章 · 获赞 32 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42049496/article/details/104298850