简介

chrony是网络时间协议(NTP)的多用途实现。它可以使系统时钟与NTP服务器、参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入同步。它还可以作为NTPV4(RFC 5905)服务器和对等体来为网络中的其他计算机提供时间服务。
它被设计成在广泛的条件下表现良好,包括间歇网络连接、严重拥塞网络、温度变化(普通计算机时钟对温度敏感)和不连续运行或在虚拟机上运行的系统。
在因特网上同步的两台机器之间的典型精度在几毫秒之内;在局域网上,精度通常以几十微秒为单位。通过硬件时间戳或硬件参考时钟,亚微秒精度是可能的。
chrony中包括两个程序,chronyd是一个可以在引导时启动的守护进程,chronyc是一个命令行接口程序,可用于监视chronyd的性能,并在运行时更改各种操作参数

安装使用

实验:用一台机去与互联网同步时间,然后用第二台机去找第一台级同步时间
实验环境
时间服务器IP:192.168.253.128
客户端IP:192.168.253.129

在服务端和客户端都安装chrony

yum install chrony -y
  • 1

服务端:修改配置文件/etc/chrony.conf

allow 192.168.253.129/24 ##允许192.168.253.129来同步时间
  • 1

然后服务端启动chrony服务

systemctl  start chronyd
  • 1

看一下323端口是否启动了
chrony 时间同步服务器_Deamon

然后我们先看一下客户端的时间
chrony 时间同步服务器_恩德_02
客户端:然后再chrony的配置文件修改一下/etc/chrony.conf

#server 0.rhel.pool.ntp.org iburst 为了不影响实验,把自带的这些都注释掉 
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst

server 192.168.253.128##将时间服务器指向我们自建的服务器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

客户端启动chronyd

/etc/init.d/chronyd start  ##这里客户端是centos6系统所以命令不一样,不过对实验没影响
  • 1

然后看一下时间
chrony 时间同步服务器_恩德_03
这里已经发生变化了
再看一下服务端时间是不是一样
chrony 时间同步服务器_Deamon_04
因为我截图慢了 其实是一样的。

客户端:使用chronyc (chrony的命令行工具,可以动态管理chrony)
chrony 时间同步服务器_Deamon_05

配置文件

/etc/chrony.conf
常用的配置项

server:指明时间服务器地址;
allow NETADD/NETMASK  允许那些客户端来同步
allow all:允许所有客户端主机;
deny NETADDR/NETMASK
deny all:拒绝所有客户端;
bindcmdaddress:命令管理接口监听的地址;
local stratum 10:即使自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授时给其它客户端;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参考资料1

注:服务器配置可以按照以上设置, 客户端设置可以按照以下的设置(我在公司使用的设置方式)

1. 服务器:192.168.2.0/24表示的IP范围 ,使用二进制 表示:192.168.2.1~192.168.2.254
注意:先停应用在进行时间同步

cp /etc/chrony.conf /etc/chrony.conf.bak

vim /etc/chrony.conf

原server xxx iburst上加入以下配置

server 10.150.200.184 iburst

保存

systemctl restart chronyd.service

systemctl enable chronyd.service

chronyc sources -v

注:如果chronyc sources -v 后时间同步未生效,可以稍等会再重试,这可能是受延迟影响。