问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Chrony配置时间同步服务器

创作时间:
作者:
@小白创作中心

Chrony配置时间同步服务器

引用
CSDN
1.
https://m.blog.csdn.net/qq_50247813/article/details/144898072

本文将详细介绍如何使用Chrony配置时间同步服务器。Chrony是一个开源的时间同步服务,用于在计算机系统之间保持时间的一致性。通过本文,你将学会如何在Linux系统上部署Chrony服务端和客户端,实现精准的时间同步。

一、NTP服务端部署

1. 安装chrony软件包

查看chrony软件包是否安装

[root@192 ~]# rpm -q chrony
package chrony is not installed
# 未安装,使用 yum -y install chrony  安装
[root@192 ~]# yum -y install chrony

2. 配置chrony

2.1. 修改chrony配置文件

chrony 的配置文件在 /etc/chrony.conf

  1. 在指定上游服务器的时候使用
    pool
    指令用于指定一个 NTP 服务器池,服务器池是由多个 NTP 服务器组成的集合,通常由 DNS 轮询提供多个服务器地址.。
    pool ntp.ubuntu.com iburst maxsources 4
    这行配置指定了 ntp.ubuntu.com 作为服务器池,并设置了 iburst 选项以加速初始同步,同时限制从该池中最多选择 4 个服务器。

  2. server
    指令用于指定一个具体的 NTP 服务器地址。这个地址可以是 IP 地址或域名。

只需要修改3处

  • 将默认的上游服务器注释掉,添加一条新的记录上游服务器IP地址填本地的,iburst加快同步速度
  • allow 0.0.0.0/0
  • local stratum 1 开启本地时钟授时服务 ,

stratum
是用来表示时间源的层级结构的。

  • Stratum 0:原子钟、GPS 时钟等高精度时间源。
  • Stratum 1:直接连接到 Stratum 0 设备的 NTP 服务器。
  • Stratum 2:连接到 Stratum 1 服务器的 NTP 服务器。
  • 以此类推:每个层级的服务器都会从上一个层级的服务器获取时间,并将时间传递给下一个层级的客户端或服务器.

2.2. 启动chrony

[root@192 ~]# systemctl enable chronyd --now

查看chrony 端口监听情况,以下可以看出chronyd服务监听在udp 123上,如果有防火墙需要开放udp 123

[root@192 ~]# ps -ef|grep -v grep|grep  chrony
[root@192 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.25.131               10   6     3     1    -15us[  -15us] +/-   18us

查看chronyd 服务正在使用的 NTP 源服务器

[root@192 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.25.130                1   6   377   100    -12us[  -28us] +/-   34us

使用
chronyc sources -v
可以查看输出的具体意思

[root@192 ~]# chronyc sources -v
210 Number of sources = 1
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.25.130               13   6    77     9  +1294ns[  -16us] +/-  295us

MS:表示源的模式和状态。

  • ^:表示服务器(server)。
  • =:表示对等点(peer)。
  • #:表示本地时钟(local clock)。
  • *:表示当前同步的源。
  • +:表示被组合用于进一步提高同步精度的源。
  • -:表示未被组合的源。
  • ?:表示无法到达的源。
  • x:表示时间可能有误。

Name/IP address:显示源的名称或 IP 地址。

Stratum:表示源的层级。层级越低,时间精度越高

Poll:表示轮询间隔,以秒为单位的对数(log2)。

Reach:表示可达性寄存器,用于指示源的可达性状态。

LastRx:表示上次接收时间样本的时间(以秒为单位)。

Last sample:显示最后一次样本的调整偏移量、测量偏移量和估计误差。

客户端配置

使用ubuntu作为客户端

查看是否安装chrony服务,没有的话进行安装

# 查看是否安装 chrony服务,没有的话进行安装
root@localhost:~# dpkg -l | grep chrony
root@localhost:~# apt-get install chrony -y

配置chrony服务器地址,使用刚刚搭建的chrony服务器。

我上面搭建的chrony服务器地址是
192.168.25.130

将默认的ntp同步源注释掉,添加本地搭建的ntp服务器,更改完重启chronyd服务,

ntp服务器的 udp 123端口确保开放了

systemctl restart chronyd

查看同步源

可以看到客户端已经在向ntp服务器时间同步了,并且 Stratum 处理第二层。

root@localhost:~# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.25.130                2   6    17     0  +1591ns[+2085ns] +/-  173us

切换到ntp服务器,查看哪些客户端正常做时间同步

[root@192 ~]# chronyc clients
Hostname                      NTP   Drop Int IntL Last     Cmd   Drop Int  Last
===============================================================================
192.168.25.130                 13      0   6   -    12       0      0   -     -
192.168.25.150                 13      0   6   -    10       0      0   -     -

chrony默认是6秒进行一次时间同步,时间是缓慢同步的,如果想要立即同步到ntp服务器当前时间执行如下命令

root@localhost:~# chronyc -a makestep
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号