chrony是麒麟os默认推荐的时间同步守护进程,具备快速收敛、离线补偿及强网络适应性,特别适合虚拟机、笔记本或网络波动环境。

如果您在麒麟OS中发现系统时间不准确,且需要通过NTP协议实现高精度、稳定的时间同步,则需配置chrony服务。chrony是麒麟OS新版本默认推荐的时间同步守护进程,具备快速收敛、离线补偿及强网络适应性,特别适合虚拟机、笔记本或网络波动环境。以下是多种可行的chrony配置方法:
一、安装并配置chrony基础同步
该方法适用于首次部署chrony或系统未预装chrony的场景,通过APT安装并指向国内主流NTP池完成基础校时。
1、更新软件包索引并安装chrony:sudo apt update && sudo apt install -y chrony
2、编辑主配置文件:sudo nano /etc/chrony/chrony.conf
3、注释掉所有以“pool”或“server”开头的默认行,在文件末尾添加以下三行(每行独立):
server ntp1.aliyun.com iburst
server ntp.tuna.tsinghua.edu.cn iburst
server cn.pool.ntp.org iburst
4、保存退出后重启服务:sudo systemctl restart chronyd
5、立即强制同步并验证状态:sudo chronyc makestep && chronyc tracking
二、启用chrony作为局域网NTP服务器
该方法将麒麟OS设为内网可信时间源,供Windows、路由器或其他Linux终端同步,需开放UDP 123端口并声明本地stratum层级。
1、编辑chrony配置文件:sudo nano /etc/chrony/chrony.conf
2、在文件末尾添加两行:
local stratum 8
allow 192.168.0.0/16
3、重启chrony服务:sudo systemctl restart chronyd
4、确认UDP 123端口处于监听状态:sudo ss -uln | grep :123
5、确保麒麟OS自身时间已通过公网源同步准确,否则对外提供的时间基准将不可靠:必须先执行chronyc makestep并确认chronyc tracking输出中Offset值小于±50ms
三、切换chrony至Windows W32Time主机同步
该方法适用于麒麟OS需从同一局域网内的Windows主机获取时间的场景,要求Windows已启用W32Time并配置为可靠NTP源。
1、卸载可能冲突的ntpd服务:sudo apt remove --purge ntp
2、编辑chrony配置文件:sudo nano /etc/chrony/chrony.conf
3、删除所有pool行,添加以下配置(将[Windows主机IP地址]替换为实际IPv4地址):
server [Windows主机IP地址] iburst minpoll 4 maxpoll 4
4、重启chrony服务:sudo systemctl restart chronyd
5、检查同步跟踪信息:chronyc tracking,确认“System time”字段显示“OK”且“Last offset”值稳定在±100ms以内:若出现“Can't synchronise: no selectable sources”错误,请在Windows端执行w32tm /resync /force并检查防火墙是否放行UDP 123
四、修复chrony因双系统导致的时间偏差
该方法解决麒麟OS与Windows共存时因硬件时钟解释逻辑不同(UTC vs 本地时间)引发的8小时跳变问题,确保chrony同步结果不被RTC重置覆盖。
1、在麒麟OS中统一硬件时钟解释方式:sudo timedatectl set-local-rtc true
2、设置正确时区:sudo timedatectl set-timezone Asia/Shanghai
3、手动设定当前准确时间(示例为2026-04-15 12:48:00):sudo date -s "2026-04-15 12:48:00"
4、将当前系统时间写入硬件时钟:sudo hwclock --systohc
5、重启chrony服务以应用RTC变更:sudo systemctl restart chronyd
五、验证chrony同步有效性
该方法通过多维度命令输出交叉比对,确认chrony是否真实完成时间校准,排除服务运行但未同步的假象。
1、查看同步跟踪详情:chronyc tracking
2、列出当前可用时间源及其状态:chronyc sources -v
3、检查系统时间与RTC一致性:timedatectl status | grep -E "(System clock|RTC)"
4、确认输出中存在带^*标记的活动源,且“Last offset”绝对值小于±20ms即视为高精度同步成功










