前言:为什么时间同步如此重要?
时间同步是运维中容易被忽视却至关重要的基础服务:
- 日志审计:服务器时间不一致,故障排查时日志顺序混乱,无法还原事件真相
- 分布式系统:节点时间偏差导致请求超时、会话过期等诡异问题
- 证书验证:HTTPS证书依赖绝对时间,偏差过大直接导致服务不可用
- 数据库复制:主从同步依赖时间戳,不一致可能引发数据冲突
结论:时间同步不是锦上添花,而是基础设施的必备组件。
一、chrony vs ntpd
| 特性 | chrony | ntpd |
|---|---|---|
| 网络适应性 | 优秀,支持网络延迟变化 | 一般,依赖稳定网络 |
| 同步速度 | 快(数分钟收敛) | 慢(数小时收敛) |
| 硬件时钟补偿 | ✅ 实时跟踪晶振偏差 | 有限 |
| 资源占用 | 低 | 中等 |
| 时间跳变容忍度 | 高(支持步进+微调) | 低(倾向微调) |
结论:chrony是RHEL/Rocky Linux默认方案,Ubuntu 20.04+也推荐使用。
二、安装
# Rocky Linux [root@magedu ~]# dnf install -y chrony Ubuntu [root@magedu ~]# apt install -y chrony三、配置 chrony.conf
cat > /etc/chrony.conf << 'EOF' # 中国区NTP服务器池 pool cn.pool.ntp.org iburst 备用方案(阿里云) server time1.aliyun.com iburst 内网客户端访问(作为时间服务器时启用) allow 192.168.0.0/16 晶振偏差记录,提高长期精度 driftfile /var/lib/chrony/drift 偏差>1秒时,前3次同步执行步进跳转 makestep 1.0 3 自动同步硬件时钟 rtcsync 日志目录 logdir /var/log/chrony EOF配置参数速查
| 参数 | 说明 |
|---|---|
pool | NTP服务器池,自动轮询(推荐) |
server | 单台NTP服务器 |
iburst | 加速首次同步 |
allow | 允许访问的网段 |
makestep | 时间跳转阈值和次数 |
rtcsync | 自动同步硬件时钟 |
四、启动服务
[root@magedu ~]# systemctl enable --now chrony五、chronyc状态查看
5.1 查看同步源
[root@magedu ~]# chronyc sources -v输出示例:
MS Name/IP address Stratum Poll Reach LastRx Last sample ======================================================================== ^? time.neu.edu.cn 1 6 377 61 -1057s[-1057s] +/- 9460us ^~ ntp.wdc2.us.leaseweb.net 3 6 377 58 -1057s[-1057s] +/- 133ms5.2 状态标识符(重点)
| 符号 | 含义 |
|---|---|
^* | ✅ 当前正在使用的主同步源 |
^+ | 备选同步源(可用) |
^- | 被否决(偏差较大) |
^? | ❌ 不可达(连接失败) |
^~ | 变化过大(网络抖动) |
正常状态:至少看到^*和一个或多个^+。
5.3 字段含义
| 字段 | 含义 |
|---|---|
| Stratum | 层级(1为原子钟,数值越小越精准) |
| Reach | 可达性(377=100%可达) |
| Last sample | 偏差值(越小越好) |
六、强制同步(时间偏差过大时)
当显示-1057s等大偏差值时,chrony拒绝自动同步,需手动干预:
[root@magedu ~]# chronyc makestep 200 OK [root@magedu ~]# chronyc sources -v修复后应看到^*主同步源,偏差降至毫秒级。
七、常用命令速查
| 命令 | 用途 |
|---|---|
chronyc sources -v | 查看NTP源状态 |
chronyc tracking | 查看同步详情 |
chronyc makestep | 强制时间跳转 |
chronyc activity | 查看NTP源活动统计 |
systemctl status chrony | 查看服务状态 |
journalctl -u chrony -f | 实时查看日志 |
八、最佳实践
- 选择就近NTP服务器:国内优先
cn.pool.ntp.org或阿里云NTP - 配置多个源:至少3-5个,提高可用性
- 启用iburst:加速首次同步
- 定期检查:确保有
^*主同步源 - 防火墙放行UDP 123:确保NTP通信
- 容器环境:共享宿主机时间,无需运行chrony
九、总结
chrony是现代Linux系统时间同步的首选方案,配置简单、同步快速、资源轻量。
核心三件事:
- 配置文件设置正确的
pool/server - 启用
makestep允许初始大偏差修正 - 用
chronyc sources -v确认^*状态