ntp时间服务器

Posted huxl1

tags:

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

Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用ntpdate进行时间同步。

一、修改时区:
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改为中国的东八区
# vi /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=false
ARC=false

二、配置新的时间
日期设定:
# date -s 2017/03/06
时间设定:
# date -s 18:40:00
查看硬件时间(Bios的):
    hwclock [-rw]
    -r:查看现有BIOS时间,默认为-r参数
    -w:将现在的linux系统时间写入BIOS中
    注:当我们进行完 Linux 时间的校时后,还需要以 hwclock -w 来更新 BIOS 的时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据

[[email protected] ~]# hwclock -r

Wed 02 Nov 2016 02:53:35 AM CST  -0.632895 seconds

同步BIOS时钟,强制把系统时间写入CMOS:
# clock -w
三、实现Internet时间同步(这里可以忽略上面两步)
方法1. 开机的时候自动网络校时:
    vi /etc/rc.d/rc.local
    /usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3 192.168.0.4;  /sbin/hwclock -w

方法2. 设定计划任务
crontab格式如下:
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed
设定crontab计划任务自动校时:

使用命令crontab -e
crontab -e
    10 5 * * * root /usr/sbin/ntpdate -u 210.72.145.44;hwclock -w
这样每天5:10自动进行网络校时,并同时更新BIOS的时间

第一步,安装NTP服务:

yum install -y ntp ntpdate

第二步,配置NTP服务:

编辑配置文件/etc/ntp.conf ,配置之前记得先备份文件。

restrict default kod nomodify notrap nopeer noquery               restrict、default定义默认访问规则,nomodify禁止远程主机修改本地服务器

restrict -6 default kod nomodify notrap nopeer noquery   ===== 》》》》》》》 配置,notrap拒绝特殊的ntpdq捕获消息,noquery拒绝btodq/ntpdc查询

 restrict 127.0.0.1                                (这里的查询是服务器本身状态的查询)。

  restrict -6 ::1

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap ===== 》》》》》》 这句是手动增加的,意思是指定的192.168.1.0--192.168.1.254的服务器都

erver 192.168.1.117                    ===== 》》》》》》   这句也是手动添加的,可以将局域网中的指定ip作为局域网内的ntp服务器。

server 1.centos.pool.ntp.org                ===== 》》》》》》 这3个域名都是互联网上的ntp服务器,也还有许多其他可用的ntp服务器,能连上

server 2.centos.pool.ntp.org                           外网时,本地会跟这几个ntp服务器上的时间保持同步。

 

server  127.127.1.0     # local clock               ===== 》》》》》》  当服务器与公用的时间服务器失去联系时,就是连不上互联网时,以局域网内的时

fudge   127.127.1.0 stratum 10                         间服务器为客户端提供时间同步服务。

第三步,启动NTP服务:

 /etc/init.d/ntpd start                当前启动ntpd服务

  chkconfig  ntpd on                 下次开机自启ntpd服务

在服务端执行  ntpq -p  下面是我在自己的服务器上面的测试的结果,仅供参考:

当所有远程服务器(不是本地服务器)的jitter值都为4000,并且reach和dalay的值是0时,就表示时间同步有问题。可能原因有2个:

  1)服务器端的防火墙设置,阻断了123端口(可以用 iptables -t filter -A INPUT -p udp --destination-port 123 -j ACCEPT 解决)

  2)每次重启ntp服务器之后,大约3-5分钟客户端才能与服务端建立连接,建立连接之后才能进行时间同步,否则客户端同步时间时会显示

   no server suitable for synchronization found的报错信息,不用担心,等会就可以了

客户端的配置:

  第一步,客户端安装NTP服务:

  yum install -y ntp

  

  第二步,同步时间:

  ntpdate   服务器IP或者域名

 Nov 19:02:27 ntpdate[28566]: no server suitable for synchronization found

出现以上情况的原因是由于NTP Server还没有和自身或其他NTP Server保持同步,因此需在ntp的配置文件ntp.conf中加入以下语句以保证NTP Server与自身同步:

server 127.127.1.0

fudge 127.127.1.0 stratum 10

 

 



































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

NTP服务时间同步服务NTP

NTP服务时间同步服务NTP

NTP时间服务器

NTP时间服务器

NTP 时间服务器

云原生之使用docker部署NTP时间服务器