目录
介绍
chrony
是 Linux 下更现代、更精确的时间同步工具,相比 ntpd
和 rdate
,它更适合动态网络环境(如移动设备或频繁断网的服务器),并能更快地同步时间。
省流
sudo apt install chrony # Debian/Ubuntu
sudo systemctl enable --now chrony
以下是 chrony 的安装、配置和使用方法:
1. 安装 chrony
Debian/Ubuntu
sudo apt update
sudo apt install chrony
CentOS/RHEL
sudo yum install chrony # CentOS 7
sudo dnf install chrony # CentOS 8+/RHEL 8+
启动并设置开机自启
sudo systemctl enable --now chronyd
2. 基本配置
配置文件路径
- 主配置文件:
/etc/chrony/chrony.conf
(Debian/Ubuntu)
或/etc/chrony.conf
(CentOS/RHEL)
常用配置选项
- 指定时间服务器(替换默认的 NTP 服务器):
server ntp.aliyun.com iburst server time.google.com iburst server time.nist.gov iburst
iburst
表示初始同步时快速发送多个请求,加速同步。- 国内推荐使用阿里云 NTP:
ntp.aliyun.com
。
- 允许本地网络同步(可选):
allow 192.168.1.0/24 # 允许该子网的设备同步时间
- 启用硬件时钟同步(如果系统有 RTC 时钟):
rtcsync
- 调整同步策略:
makestep 1.0 3 # 如果时间偏差 >1秒,前 3 次更新会强制跳步
修改后重启 chrony
sudo systemctl restart chronyd
3. 常用命令
查看时间同步状态
chronyc tracking
输出示例:
Reference ID : 5BBD59C3 (time.google.com)
Stratum : 2
Ref time (UTC) : Thu Oct 05 12:34:56 2023
System time : 0.000123 seconds slow of NTP time
Last offset : +0.000045 seconds
RMS offset : 0.000012 seconds
Frequency : 1.234 ppm slow
Update interval : 64.2 seconds
手动立即同步
sudo chronyc makestep
查看当前时间源
chronyc sources -v
输出示例:
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* time.google.com 1 6 377 45 +12us[ +23us] +/- 15ms
^+ ntp.aliyun.com 2 6 377 43 +45us[ +67us] +/- 20ms
检查 NTP 服务器是否可用
chronyc activity
输出示例:
200 OK
2 sources online
0 sources offline
0 sources doing burst
4. 高级调试
强制同步并检查
sudo chronyc waitsync
(等待 chrony 完成同步,超时默认 3 秒)
查看详细统计信息
chronyc sourcestats -v
检查 chrony 服务状态
sudo systemctl status chronyd
5. 常见问题
问题 1:时间不同步
- 可能原因:
- 防火墙阻止 UDP 123 端口。
- 配置的 NTP 服务器不可用。
- 解决方法:
sudo chronyc sources -v # 检查服务器状态 sudo ufw allow 123/udp # 开放防火墙(如果使用 UFW)
问题 2:时间偏差大
- 强制跳步同步:
sudo chronyc makestep
- 调整
makestep
参数(在/etc/chrony/chrony.conf
):makestep 1.0 3 # 允许前 3 次同步时直接跳步
6. 对比 rdate 和 chrony
特性 | rdate |
chrony |
---|---|---|
同步方式 | 单次 TCP 同步 | 持续 NTP 协议同步 |
精度 | 秒级 | 毫秒/微秒级 |
适用场景 | 简单脚本或老旧系统 | 现代服务器、动态网络环境 |
资源占用 | 低 | 低(后台守护进程) |
自动调整时钟 | 不支持 | 支持(平滑同步或跳步) |
总结
- 推荐使用
chrony
:它更精准、稳定,适合长期运行的系统。 rdate
仅适合临时用途:例如无网络环境的初始化时间设置。
按上述步骤配置后,你的系统时间会自动保持高精度同步。