NTP时间服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NTP时间服务器相关的知识,希望对你有一定的参考价值。

1 NTP简介

NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。

NTP服务器就是利用NTP协议提供时间同步服务的。

2 NTP服务器安装

查看是否安装ntp服务

[[email protected] ~]# rpm -qa ntp
ntp-4.2.6p5-12.el6.centos.2.x86_64

如果没有就安装

yum install ntp -y

3 配置NTP服务

[[email protected] ~]# vim /etc/ntp.conf
# restrict default kod nomodify notrap nopeer noquery
restrict default nomodify
# nomodify客户端可以同步
# 将默认时间同步源注释改用可用源
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server ntp1.aliyun.com
server time.nist.gov
#没有同步服务器时配
server 127.127.1.0 
fudge 127.127.1.0 stratum 8

4 启动NTP服务器

如果计划任务有时间同步,先注释,两种用法会冲突。

[[email protected] ~]# crontab -e
#*/10 * * * * /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1;/sbin/hwclock -w

启动ntpd服务,并设置开机自启动

[[email protected] ~]# service ntpd status
ntpd 已停
[[email protected] ~]# service ntpd start
正在启动 ntpd:                                            [确定]
[[email protected] ~]# service ntpd status
ntpd (pid  31990) 正在运行...
[[email protected] ~]# chkconfig --list|grep ntpd
ntpd            0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
ntpdate         0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
[[email protected] ~]# chkconfig ntpd on
[[email protected] ~]# chkconfig --list|grep ntpd
ntpd            0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
ntpdate         0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭

测试

[[email protected] ~]# ntpq -p
remote           refid      st t when poll reach   
delay   offset  jitter
==============================================================================
*ntp1.aliyun.com 10.137.38.86     2 u   22   64    1  525.885  -42.367   0.000
[[email protected] ~]# ntpstat
synchronised to NTP server (110.75.186.247) at stratum 3   
time correct to within 4257 ms   
polling server every 64 s
[[email protected] ~]# ntpdate 172.168.1.101 
7 Dec 18:43:07 ntpdate[26950]: the NTP socket is in use, exiting

5 客户机时间同步

客户机要等几分钟再与新启动的ntp服务器进行时间同步,否则会提示no server suitable for synchronization found错误。

[[email protected] ~]# ntpdate 172.168.1.101 
7 Dec 18:40:16 ntpdate[1453]: step time server 172.168.1.101 offset 40.880807 sec

将命令放入计划任务。

[[email protected] ~]# crontab -l
5 * * * * /usr/sbin/ntpdate 172.168.1.101 > /dev/null 2>&1;/sbin/hwclock -w
[[email protected] ~]# service crond status
crond (pid  2940) 正在运行...

6 报错

解决ntp的错误 no server suitable for synchronization found
当用 ntpdate 来查询时报错:

 "no server suitable for synchronization found "

错误的原因有以下2个:

6.1 Server dropped: Strata too high

在ntp客户端运行ntpdate serverIP,呈现no server suitable for synchronization found的错误。

在ntp客户端运行ntpdate –d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常景象下stratum这个值得局限是“0~15”。

这是因为NTP server还没有和其自身或者它的server同步上。

以下的定义是让NTP Server和其自身对峙同步,若是在/etc/ntp.conf中定义的server都不成用时,将应用local时候作为ntp办事供给给ntp客户端。

server 127.127.1.0 

fudge 127.127.1.0 stratum 8 

原因分析:

在ntp server上从头启动ntp服务后,ntp server自身或者与其server的同步的须要一个时候段,这个过程可能是5分钟,在这个时候之内涵客户端运行ntpdate号令时会产生no server suitable for synchronization found的错误。

那么如何知道何时ntp server完成了和自身同步的过程呢?

在ntp server上应用命令:

watch ntpq -p 

呈现画面:

Every 2.0s: ntpq -p                                   Wed Oct 24 18:06:04 2018

     remote           refid  st t when poll reach   delay   offset  jitter
==============================================================================
*120.25.115.20   10.137.53.7      2 u    8   64  377   22.675   20.870   3.324
 time-a-g.nist.g .INIT.          16 u    - 1024    0    0.000    0.000   0.000

重视LOCAL的这个就是与自身同步的ntp server。

重视reach这个值,在启动ntp server办过后,这个值就从0开端络续增长,当增长到17的时辰,从0到17是5次的变革,每一次是poll的值的秒数,是64秒*5=320秒的时候。

若是之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询具体错误信息,再做断定。

6.2 Server dropped: no data

从客户端履行netdate –d时有错误信息如下:

28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found 

呈现这个错误的原因可能有2个:

  • 检查ntp的版本,若是你应用的是ntp4.2(包含4.2)之后的版本,在restrict的定义中应用了notrust的话,会导致以上错误。
  • 检查ntp server的防火墙。可能是server的防火墙樊篱了upd 123端口。
service iptables stop

关掉iptables办过后再测验测验从ntp客户端的同步,若是成功,证实是防火墙的题目,须要更改iptables的设置。

以上是关于NTP时间服务器的主要内容,如果未能解决你的问题,请参考以下文章

android 如何关闭NTP网络时间同步?

CentOS7之ntp服务搭建

NTP 服务器没有得到正确的日期 (ESP8266)

怎样把WINDOWS7设置成NTP时间服务器

如何在 C 语言 (Linux) 中将 NTP 时间转换为 Unix 纪元时间

Centos 7 Ntp 服务器的配置