搭建的linux ntp服务器设置210.72.245.44为时钟源,服务器同步后开始正常,一段时间后就会有几分钟差距

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建的linux ntp服务器设置210.72.245.44为时钟源,服务器同步后开始正常,一段时间后就会有几分钟差距相关的知识,希望对你有一定的参考价值。

参考技术A 你是做的定时任务吗?同步一次以后,时间长了,还会快或者慢,我们的好多服务器都是做定时任务每天同步一次。 参考技术B 这种情况应该是主板上的电池可能电量不足了,你需要更换一下那个主板上的电池试试看。 参考技术C 是不是主板上的时钟电池没电了??追问

用的是虚拟机桥接网络的

追答

额。。。不是,我的意思是说,是你电脑上的时钟慢吗??

追问

这个倒真没有,时间很正常啊

追答

那这几分钟的差距是哪个慢了呢??210.72.245.44的主机吗??

追问

手动重新同步就正常了,要不本地时间会越来越慢

追答

额。。那难道是NTP服务器快???

Linux下的NTP服务搭建

为了实现时间同步,我们就需要用NTP(Network Time Protocol)这个协议。

简单地说,NTP是用来使系统和一个精确的时间源保持时间同步的协议。

我们需要建立一个能提供精确时间的服务器,局域网内的所有电脑统一通过这台时间服务器进行时间同步、校准。

如何设置Linux Time Zone:

/usr/share/zoneinfo:这是个目录,在这个目录下是规定了各主要时区的时间设定文件,例如中国大陆地区的时区设置文件是 /usr/share/zoneinfo/Asia/Shanghai 。

 

 

如果我们想查看对于每个time zone当前的时间我们可以用zdump命令。

例如:分别查看日本、上海和纽约时间。

 

 

当输入date命令查看时间时,我们所在的time zone是哪个,就显示哪个时间,可以通过在/usr/share/zoneinfo下找到我们的time zone文件然后拷贝去到/etc/localtimezone(或者做个symbolic link)来更改所在时区

例如:把time zone改成纽约所在时区,再通过date查看当前时间。

 

 

把time zone改成日本所在时区,再通过date查看当前时间。

 

 

把time zone改成上海所在时区,再通过date查看当前时间。

 

 

NTP服务端的设置:

编辑ntp的配置文件  /etc/ntp.conf 

 

 

关于权限设定部分 

权限的设定主要以 restrict 这个参数来设定,主要的语法为: 

restrict IP地址 mask 子网掩码 参数 

其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP 

参数有以下几个: 

ignore :关闭所有的 NTP 联机服务 

nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。 

notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网 

noquery :不提供客户端的时间查询 

notrap:不提供trap远程登录功能,trap服务是一种远程时间日志服务

nopeer:提供时间服务,但不作为对等体

kod:向不安全的访问者发送Kiss-Of-Death报文

注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!

上级时间服务器的设定 :

由于我们配置的NTP 服务器需要网络上面时间比较准确的NTP服务器来更新自己的时间,所以在我们的 NTP 服务器上面要配置一部上级时间服务器来进行校准

用server这个参数设定上级时间服务器,语法为: 

server + IP地址或域名 [prefer] 

IP地址或域名就是我们指定的上级时间服务器,如果 Server 参数最后加上 prefer,表示我们的 NTP 服务器主要以该部主机时间进行校准。

解决NTP服务器校准时间时的传送延迟 :

使用driftfile参数设置:

driftfile 文件名

在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。

注意: driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。

NTP客户端的使用:

Linux系统:

执行 ntpdate: 

ntpdate 10.1.3.51   其中10.1.3.51是NTP服务器的IP 

 

不要忘了使用hwclock命令,把时间写入bios

hwclock -w 

如果想定时进行时间校准,可以使用crond服务来定时执行。

编辑 /etc/crontab 文件

加入下面一行: 

30 8 * * * root /usr/sbin/ntpdate 10.1.3.51; /sbin/hwclock -w   其中 10.1.3.51是NTP服务器的IP地址

然后重启crond服务

systemctl restart crond 

这样,每天 8:30 Linux 系统就会自动的进行网络时间校准。

Windows 系统:

    1.  打开组策略编辑器,命令是:gpedit.msc
    2.  在计算机策略对话框中,打开如下路径:计算机配置/管理模板/系统/Windows时间服务/时间提供程序。

       

    3.  双击右边配置Windows NTP客户端。将Ntp Server项,输入将要同步到的时间服务器IP地址。在类型项,选择NTP。

       

    4. 双击启动NTP客户端,启用NTP客户端,点击应用,确定按钮;
    5. 执行命令:gpupdate /force,更新组策略
    6. 执行命令:Services.msc,找到Windows Time服务,检查W32Time服务是否启动,启动类型是否是 自动启动,如下图:


    7. 在右下角时间和日期中,设置同步地址并勾选自动同步即可,如下图

       



 

 

 

参考:http://www.cnblogs.com/oskb/p/3848714.html

   https://www.cnblogs.com/smallprogram/p/6346833.html

以上是关于搭建的linux ntp服务器设置210.72.245.44为时钟源,服务器同步后开始正常,一段时间后就会有几分钟差距的主要内容,如果未能解决你的问题,请参考以下文章

Linux NTP服务器搭建精讲

Hadoop集群搭建06_设置linux时间同步

手把手教你在centos 7.4上搭建NTP服务器

手把手教你在centos 7.4上搭建NTP服务器

如何在centos 7中设置ntp 服务

Linux 环境下NTP 服务搭建