Chrony配置时间同步服务器
Chrony配置时间同步服务器
本文将详细介绍如何使用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
在指定上游服务器的时候使用
pool
指令用于指定一个 NTP 服务器池,服务器池是由多个 NTP 服务器组成的集合,通常由 DNS 轮询提供多个服务器地址.。pool ntp.ubuntu.com iburst maxsources 4
这行配置指定了 ntp.ubuntu.com 作为服务器池,并设置了 iburst 选项以加速初始同步,同时限制从该池中最多选择 4 个服务器。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