【Chrony 时间同步双实验实操】从单节点校准到本地 NTP 服务器搭建详解
目录
实验一:单节点时间同步到阿里云 NTP 服务器
1. 环境准备与错误时间设置
2. Chrony 配置文件改造
3. 服务重启与同步验证
实验二:搭建本地时间同步服务器集群
1. 架构设计
2. 服务端配置(时间中转节点)
3. 客户端配置(依赖本地服务端)
知识拓展:
chronyc sources输出分析
授时服务器:
210.72.145.44 国家授时中心
ntp.aliyun.com 阿里云
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学
s2c.time.edu.cn 北京邮电大学
s2d.time.edu.cn 西南地区网络中心
s2e.time.edu.cn 西北地区网络中心
s2f.time.edu.cn 东北地区网络中心
s2g.time.edu.cn 华东南地区网络中心
s2h.time.edu.cn 四川大学网络管理中心
s2j.time.edu.cn 大连理工大学网络中心
s2k.time.edu.cn CERNET桂林主节点
s2m.time.edu.cn 北京大学
ntp.sjtu.edu.cn 202.120.2.101 上海交通大学
实验一:单节点时间同步到阿里云 NTP 服务器
1. 环境准备与错误时间设置
[root@localhost ~]# date -s 10:00
2025年 04月 25日 星期五 10:00:00 CST
2. Chrony 配置文件改造
[root@localhost ~]# vim /etc/chrony.conf
# 定位第3行,删除后添加阿里的时间同步服务地址server ntp.aliyun.com iburst# 注意:也可以先清空chrony.conf内容,将阿里开源提供的时间服务器推荐配置复制粘贴到该文件中
server ntp.aliyun.com iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
logchange 0.5
logdir /var/log/chrony
3. 服务重启与同步验证
#重启服务
[root@localhost ~]# systemctl restart chronyd#时间同步
[root@localhost ~]# chronyc sources -v
#查看时间是否同步
[root@localhost ~]# timedatectl status
实验二:搭建本地时间同步服务器集群
1. 架构设计
角色 | IP地址(根据个人实际情况查看) | 同步目标 |
服务端 | 192.168.2.131 | ntp.aliyun.com(上游) |
客户端 | 192.168.2.134 | 192.168.48.131(本地) |
2. 服务端配置(时间中转节点)
# 配置上游服务器
[root@localhost ~]# vim /etc/chrony.conf
# 定位第3行,添加阿里的时间同步服务地址server ntp.aliyun.com iburst# 开放客户端访问
# 定位第26行,设置谁可以访问本机进行同步
allow 192.168.2.0/24 # 允许同网段客户端同步
#重启服务
[root@localhost ~]# systemctl restart chronyd
3. 客户端配置(依赖本地服务端)
# 安装软件
[root@lysLinux ~]# yum install chrony -y # 编辑配置文件
[root@lysLinux ~]# vim /etc/chrony.conf # 修改第3行为server的地址
server 192.168.2.131 iburst# 重启服务
[root@lysLinux ~]# systemctl restart chronyd# 测试
[root@lysLinux ~]# chronyc sources -v
注意:客户端同步失败的原因
- 检查网络连通性,需要能ping通
- 检查服务端的allow参数
- 需要重启服务
知识拓展:
chronyc sources输出分析
- M:这表示信号源的模式。*^*表示服务器,*=*表示对等方,#表示本地连接的参考时钟。
- S:此列指示源的状态
* | chronyd当前同步到的源 |
+ | 表示可接受的信号源,与选定的信号源组合在一起 |
- | 表示被合并算法排除的可接受源 |
? | 表示已失去连接的源 |
x | 表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致) |
~ | 表示时间似乎具有太多可变性的来源 |
- Name/IP address:显示服务器源的名称或IP地址
- Stratum:表示源的层级,层级1表示本地连接的参考时钟,第2层表示通过第1层级计算机的时钟实现同步,依此类推
- Poll:表示源轮询频率,以秒为单位,值是基数2的对数,例如值6表示每64秒进行一次测量,chronyd会根据当时的情况自动改变轮询频率
- Reach:表示源的可达性的锁存值(八进制数值),该锁存值有8位,并在当接收或丢失一次时进行一次更新,值377表示最后八次传输都收到了有效的回复
- LastRx:表示从源收到最近的一次的时间,通常是几秒钟,字母m,h,d或y分别表示分钟,小时,天或年
- Last sample:表示本地时钟与上次测量时源的偏移量,方括号左侧的数字表示原始测量值,方括号右侧表示偏差值,*+/-*指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前