概述

linux服务器在提供服务时必须与其他计算机交换请求,在实际生产环境中,时间不同步,因此服务可能会发生异常。

了解如何部署NTP服务以解决此问题。

ps:强烈吐槽下头条这个新排版功能,只要图片分辨率比较低然后点添加的时候直接白屏,也无法回退,这个很明显的bug居然没测出来,导致我重新写了三次…

一、NTP服务概述

1,原理

网络时间协议(NTP )是用于同步计算机时间的协议。 可以将服务器或时钟源与计算机同步,提供高精度的时间纠正(与局域网标准的差距小于1毫秒,广域网上的几十毫秒),并通过加密确认防止恶意协议攻击。

模式: C/S模式

2、使用的端口

默认NTP服务端口: UDP/123

3、ntp和ntpdate的区别

1 )这两项服务都是centos附带的(centos7不附带ntp )。 ntp的安装包名称为ntp; ntpdate的安装软件包是ntpdate。 他们不是在安装包中提供的。

2 ) ntp守护进程为ntpd,配置文件为/etc/ntp.conf

3 )将ntpdate用于客户端时间校正,并且除NTP之外的服务器可以不启动NTP。

二、安装部署

1、IP计划

ntp时间怎么同步(linux配置ntp时间同步)-编程之家

2、环境准备

以下内容基于centos7.3

2.1、关闭selinux和防火墙

系统停止防火墙d

系统禁用防火墙d

sed-I ‘ s/selinux=enforcing/selinux=disabled/g ‘/etc/selinux/config

setenforce 02.2,配置yum

# cat /etc/yum.repos.d/t.repo

[InstallMedia]

name=Centos 7.3

base URL=file ://media/cdrom /

启用=1

gpgcheck=0

# mount-o loop-t iso 9660/root/centos-7-x86 _ 64-everything-1611.iso/media/cdrom /

# yum clean all yum makecache2.3、EDT和CST之间的差异和设置

要检查每台服务器的时间格式、EDT或CST,在中国将服务器的时间格式更改为CST

EDT :指的是美国东部夏令时间。 波士顿、纽约市、华盛顿特区在这个时区内,与北京时间有12小时的时差,落后12小时。

CST :可以指以下两种。

1 )美国中部标准时间(西六区,-6:00 ),中国东八区) 8:00 ),北京时间比美国中部标准时间早14小时。 3:45 GPM是北京时间凌晨1点45分。

2 )中澳标准时间(10:30 ),中国东八区(8:00 ),北京时间比中澳标准时间晚2个半小时。 3:45 PMCST是北京时间下午5:45。

将系统时间格式调整为CST的命令有以下两个:

# mv/etc/local time/etc/local time.bak

# ln-s/usr/share/zoneinfo/Asia/Shanghai/etc/local time 3,构建NTP服务器端

3.1、ntp服务部署

检查是否安装了NTP软件包,并且客户端只安装ntpdate安装包

rpm -qa | grep ntp

使用yum源安装

安装yum-yinstallNTP/*yumNTP服务*/ntp时间怎么同步(linux配置ntp时间同步)-编程之家

3.2、服务端修改配置

# vim /etc/ntp.conf

=====================================

#设置拒绝所有访问方法请求的默认策略

restrict default ignore

#哪些机器可以同步

restrict 127.0.0.1

restrict -6 :1

#允许LAN中的机器同步时间。 nomodify拒绝更改服务器上的时间

restrict 172.xx.xx.xx mask 255.255.255.0 no modify notrap

#将该服务器的本地时间设为NTP服务器的时间,如果其他客户端同步,则同步该服务器的时间

服务器127.127

.1.0
#stratum这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0
fudge 127.127.1.0 stratum 2
#每一个system clock的频率都有小小的误差,这个就是为什么机器运行一段时间后会不精确. NTP会自动来监测我们时钟的误差值并予以调整.
#但问题是这是一个冗长的过程,所以它会把记录下来的误差先写入driftfile.这样即使你重新开机以后之前的计算结果也就不会丢失了
driftfile /var/lib/ntp/drift
# Enable public key cryptography.
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
# Disable the monitoring facility to prevent amplification attacks using ntpdc
disable monitor
====================================================================================

说明:

关于restrict格式如下:

其中parameter如下:

ignore:忽略所有类型的ntp连接nomodify:不允许客户端修改服务器的时间参数,但是允许客户端透过这部主机进行时间校验。noquery: 不允许客户端进行时间校验。notrap:不提供trap时间登录notrust:拒绝没有认证的客户端ntp时间怎么同步(linux配置ntp时间同步)-编程之家

3.3、启动ntp服务

systemctl restart ntpd

3.4、验证

现在已经启动了NTP的服务,但是系统时间到底和服务器同步了没有呢? 为此NTP提供了一个很好的查看工具: ntpq (NTP query)

# watch ntpq -p

建议大家在打开NTP服务器后就可以运行ntpq命令来监测服务器的运行.这里可以使用watch命令来查看一段时间内服务器各项数值的变化。

ntp时间怎么同步(linux配置ntp时间同步)-编程之家

这里st为 配置文件设置的stratum,范围是0–15,如果为16就是错误的

说明:

remote: 它指的就是本地机器所连接的远程NTP服务器refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.when: 一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加delay: 从本地机发送同步要求到服务器的round trip timeoffset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确


三、配置时间同步

客户端需要停用ntp服务,否则无法运行ntpdata 服务器地址这个命令 来同步时间,同步的时候会提示ntp被使用中。

1、停用ntp服务

systemctl stop ntpd

2、手动同步ntp服务器时间

ntpdate 172.xx.xx.xx

3、定期同步

#每天8点执行同步命令
* 8 * * * /usr/sbin/ntpdate 172.xx.xx.xx;/sbin/hwclock -w


觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

ntp时间怎么同步(linux配置ntp时间同步)-编程之家

极速赛车五码稳赢技巧供trap时间登录notrust:拒绝没有认证的客户端ntp时间怎么同步(linux配置ntp时间同步)-编程之家

3.3、启动ntp服务

systemctl restart ntpd

3.4、验证

现在已经启动了NTP的服务,但是系统时间到底和服务器同步了没有呢? 为此NTP提供了一个很好的查看工具: ntpq (NTP query)

# watch ntpq -p

建议大家在打开NTP服务器后就可以运行ntpq命令来监测服务器的运行.这里可以使用watch命令来查看一段时间内服务器各项数值的变化。

ntp时间怎么同步(linux配置ntp时间同步)-编程之家

这里st为 配置文件设置的stratum,范围是0–15,如果为16就是错误的

说明:

remote: 它指的就是本地机器所连接的远程NTP服务器refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.when: 一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加delay: 从本地机发送同步要求到服务器的round trip timeoffset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确


三、配置时间同步

客户端需要停用ntp服务,否则无法运行ntpdata 服务器地址这个命令 来同步时间,同步的时候会提示ntp被使用中。

1、停用ntp服务

systemctl stop ntpd

2、手动同步ntp服务器时间

ntpdate 172.xx.xx.xx

3、定期同步

#每天8点执行同步命令
* 8 * * * /usr/sbin/ntpdate 172.xx.xx.xx;/sbin/hwclock -w


觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

ntp时间怎么同步(linux配置ntp时间同步)-编程之家