Linux之chrony时间同步服务、ntp协议

chrony概述

chrony是RHEL7.x上自带的时间同步开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确。是一个ntp协议的实现程序,既可以当做服务端,也可以充当客户端;它专为间歇性互联网连接的系统而设计,当然也能良好应用于持久互联网连接的环境;

三个时间参考:

硬件时钟、实时时钟以及手动同步。

组成:

  • chronyd

是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。

  • chronyc

客户端程序。

chrony配置文件参数详解

参数         参数说明
server         配置同步NTP服务器时间地址,建议配置二个以上。例:server?cn.pool.ntp.org iburst

driftfile         chronyd程序的主要行为之一,就是根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值。?系统默认

makestep通常,        chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制),没有更多时钟更新时才生效。?系统默认

rtcsync         rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)

hwtimestamp         在所有支持硬件的接口上启用硬件时间戳。系统默认

minsources        增加需要调整的最小可选信号源数量 系统时钟。系统默认

allow         允许指定网络的主机同步时间,不指定就是允许所有,默认不开启 例:192.168.0.0/16

local stratum         默认不开启的选项,意思是,即使服务端没有同步到精确的网络时间,也允许向客户端同步不精确的时间。可以视情况而定。系统默认

keyfile         指定包含NTP身份验证密钥的文件。?系统默认

leapsectz         从系统tz数据库中获取TAI-UTC偏移和闰秒。系统默认

logdir         指定日志文件的目录。系统默认

log         选择要记录的信息。系统默认

NTP

NTP是网络时间协议(Network Time Protocol)

三个命令可用于验证 NTP 同步情况

  1. ntpq:ntpq 是一个标准的 NTP 查询程序。
  2. ntpstat:显示网络世界同步状态。
  3. timedatectl:它控制 systemd 系统中的系统时间和日期。

ntpd、ntpdate的区别

ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步, 并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。
时钟的跃变,对于某些程序会导致很严重的问题。

这有几个非常明显的问题:

  1. 这样做不安全。

ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。
由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

  1. 这样做不精确。

一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。
与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

  1. 这样做不够优雅。

由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错
唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。
其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。
NTPD在和时间服务器的同步过程中,会把BIOS计时器的振荡频率偏差——或者说Local Clock的自然漂移(drift)——记录下来。
这样即使网络有问题,本机仍然能维持一个相当精确的走时。

推荐的中国NTP公共时间同步服务器

国家-中图:cn.pool.ntp.org
中国:cn.ntp.org.cn
阿里云:ntp.aliyun.com
腾讯云:time1.cloud.tencent.com

配置文件修改说明

vim /etc/chrony.conf

可以直接用以下文本覆盖配置文件内容,再根据自身实际情况进行修改
#配置同步NTP服务器时间地址,建议配置二个以上
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst
server time1.cloud.tencent.com iburst

#根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中。
driftfile /var/lib/chrony/drift

#时间纠偏
makestep 1.0 3

#rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)
rtcsync

#在所有支持硬件的接口上启用硬件时间戳。
#hwtimestamp *

#增加需要调整的最小可选信号源数量 系统时钟
#minsources 2

#允许指定网络的主机同步时间,不指定就是允许所有,默认不开启
#allow 192.168.0.0/16

#服务时间,即使未同步到任何NTP服务器也允许向客户端同步不精确的时间。
#local stratum 10

#指定包含NTP身份验证密钥的文件。
keyfile /etc/chrony.keys

#从系统tz数据库中获取TAI-UTC偏移和闰秒。
leapsectz right/UTC

#指定日志文件的目录。
logdir /var/log/chrony

#选择要记录的信息。
#log measurements statistics tracking

chrony基本操作命令

chrony操作

#停止chronyd服务
systemctl stop chronyd

#开始chronyd服务
systemctl start chronyd

#重启chronyd服务
systemctl restart chronyd

#查看chronyd服务状态
systemctl status chronyd

#开机启动chronyd服务
systemctl enable chronyd

#禁止开机启动chronyd服务
systemctl disable chronyd

#查看时间同步源,查看时间同步进度
chronyc sources –v

#查看时间同步源状态
chronyc sourcestats -v

#查看日期时间、时区及NTP状态:
timedatectl

#查看时区列表:
timedatectl list-timezones

#修改时区
timedatectl set-timezone Asia/Shanghai

#修改日期时间
timedatectl set-time “2020-03-05 12:20:00”

#开启NTP
timedatectl set-ntp true/flas

更改时区方法

一、

1、使用tzselect命令查询需要的时区
2、查看命令最后的提示,添加变量到vim /root/.bash_profile文件中
将追加TZ=‘Africa/Nairobi’; export TZ
3、重启生效
二、
使用timedatectl 命令更改时区 hostnamectl set-h
#查看当前时区信息
Timedatectl

#列出所有时区
#timedatectl list-timezones

#以RFC22格式输出日期和时间
date -R

#修改日期
timedatectl set-time 2016-04-25

#修改时间
timedatectl set-time '2016-04-26 21:53:50

#设置系统时区为上海
timedatectl set-timezone Asia/Shanghai

配置同步服务

服务端
首先安装程序,8的版本已经有了,安装命令如下:

[root@bogon ~]# yum install chrony

关闭防火墙、关闭selinux

[root@redhat ~]# systemctl stop firewalld
[root@redhat ~]# setenforce 0

配置配置文件

[root@redhat ~]# vim /etc/chrony.conf

注释掉#pool 2.rhel.pool.ntp.org iburst
allow 192.168.159.137   //允许指定网络的主机同步时间
local stratum 10       // 服务时间,即使未同步到任何NTP服务器也允许向客户端同步不精确的时间。

重启服务

[root@redhat ~]# systemctl restart chronyd

客户端同步
配置配置文件

[root@bogon ~]# vim /etc/chrony.conf
pool 192.168.159.128  iburst //指定服务端

同步服务端时间

[root@bogon ~]# systemctl restart chronyd

测试

[root@bogon ~]# date 082910102020.12
Sat Aug 29 10:10:12 CST 2020
[root@bogon ~]# systemctl restart chronyd
[root@bogon ~]# date
Sat Aug 29 10:10:24 CST 2020
[root@bogon ~]# date
Sat Aug 29 10:10:27 CST 2020
[root@bogon ~]# date
Mon Aug 30 21:39:02 CST 2021

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个F啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值