麒麟服务器【chrony时钟同步设置】
麒麟服务器操作系统,需要同步内网时间服务器的时间,该如何配置呢?我们这里使用chrony服务为例。
Chrony概述
- Chrony 是一个现代的时间同步工具,专门设计用于解决 NTP 在某些场景下的不足。
- 它最初是为移动设备和网络不稳定的环境设计的,但在服务器和桌面环境中也很流行。
特点:
- 快速收敛:Chrony 能够在短时间内快速收敛到正确的时间,特别适合网络不稳定的环境。
- 低资源消耗:Chrony 的资源消耗较低,适合移动设备或低性能设备。
- 支持断网运行:Chrony 能够在断网时通过本地时钟继续运行,并在恢复网络后快速同步。
- 动态调整:Chrony 能够动态调整时间同步的频率和策略,以适应网络环境。
- 安全性:Chrony 支持更强的安全机制,如对称密钥加密。
chrony配置步骤
1.查看chrony时钟同步服务状态(麒麟服务器系统默认自带)
systemctl status chronyd

2.配置时钟同步
vim /etc/chrony.conf

注释掉部分行,添加如下行:
server IP(时钟源服务器) iburst
最终如下图所示(IP地址按实际修改):

3.重启时钟服务
systemcl restart chronyd
查看服务状态:
systemctl status chronyd
4.查看是否同步成功
执行chronyc sources -v 命令,出现 ^*开头和IP 的为正常同步,如下图所示:

致此,chrony时间同步已经这配置好了!
配置动态调整
在 /etc/chrony.conf 中,可以通过以下参数设置动态调整:
iburst 选项
server ntp.example.com iburst
- 在启动时快速进行多次同步(burst),以快速收敛到正确的时间。
- 后续同步频率会根据网络条件和时钟偏差动态调整。
pollinterval 选项
server ntp.example.com minpoll 4 maxpoll 6
minpoll:最小轮询间隔(以秒为单位的 2 的幂),默认为 6(64 秒)。maxpoll:最大轮询间隔,默认为 10(1024 秒)。- Chrony 会根据需要在这个范围内动态调整同步频率。
makestep 选项
makestep 1.0 -1
- 在时间偏差超过
1.0秒时,立即同步时间(而不是逐步调整)。 -1表示仅在启动时允许大幅跳步。
动态调整的实践
以下是一个优化的 /etc/chrony.conf 配置示例:
# 使用公共 NTP 服务器
server time.cloudflare.com iburst
server ntp.aliyun.com iburst
# 动态调整同步频率
server ntp.example.com minpoll 4 maxpoll 6
# 在时间偏差超过 1 秒时立即同步
makestep 1.0 3
# 允许本地网络客户端同步时间
allow 192.168.1.0/24
# 启用本地硬件时钟
local stratum 10
# 记录时间偏差日志
driftfile /var/lib/chrony/drift
使用chronyc命令动态调整
除了配置文件,你还可以通过 chronyc 命令动态调整同步策略。
强制立即同步
chronyc makestep
强制 Chrony 立即同步时间,而不是逐步调整。
调整同步频率
chronyc pollsched
查看当前的同步计划(轮询间隔)。
手动设置轮询间隔
chronyc polltarget 64
将目标轮询间隔设置为 64 秒。
监控动态调整效果
使用以下命令监控 Chrony 的动态调整效果:
chronyc tracking
查看系统时间与 NTP 时间服务器的偏差和同步状态。
chronyc sourcestats
查看时间服务器的统计数据,包括延迟、偏差和同步频率。
常用命令
# 启动 Chrony 服务
sudo systemctl start chronyd
# 停止 Chrony 服务
sudo systemctl stop chronyd
# 重启 Chrony 服务
sudo systemctl restart chronyd
# 设置 Chrony 开机自启动
sudo systemctl enable chronyd
# 禁用 Chrony 开机自启动
sudo systemctl disable chronyd
# 检查 Chrony 服务状态
sudo systemctl status chronyd
# 查看时间同步源状态
chronyc sources
# 查看详细的同步源信息
chronyc sources -v
# 查看当前时间同步状态
chronyc tracking
# 手动同步时间,强制 Chrony 立即同步时间,而不是逐步调整。
sudo chronyc makestep
# 调整时间(强制)
sudo chronyc settime "2023-09-29 12:34:56"
# 添加新的时间服务器
chronyc add server ntp.example.com
# 检查时间服务器的可用性
chronyc activity
# 强制与某个时间服务器同步
chronyc burst ntp.example.com
# 查看 Chrony 的配置
cat /etc/chrony.conf
# 查看 Chrony 的日志
journalctl -u chronyd
# 重新加载配置文件
sudo systemctl reload chronyd
chrony与NTP的对比
| 特性 | NTP | Chrony |
|---|---|---|
| 设计目标 | 高精度时间同步 | 适用于不稳定网络和低资源环境 |
| 资源消耗 | 较高 | 较低 |
| 时间同步速度 | 较慢 | 较快 |
| 断网运行 | 不支持 | 支持 |
| 安全机制 | 支持,但较弱 | 支持更强的安全机制 |
| 工具 | ntpd, ntpq |
chronyd, chronyc |
| 适用场景 | 高精度、网络稳定的场景 | 移动设备、网络不稳定的场景 |
在实际使用中,Chrony 通常是更好的选择,尤其是在现代 Linux 发行版中。如果你对时间同步有更高的精度要求,可以考虑使用 NTP。