麒麟系统时间不准可因未启用同步服务、ntp不可达或硬件时钟失准所致,推荐依次采用systemd-timesyncd(默认轻量)、chronyd(高精度推荐)、ntpd(高精度服务器)、ntpdate定时同步及硬件时钟校准五种方法解决。

如果您在麒麟操作系统中发现系统时间与实际时间存在偏差,或开机后时间明显不准,则可能是由于未启用时间同步服务、NTP服务器不可达、硬件时钟未校准等原因所致。以下是多种可行的时间同步配置方法:
一、使用 systemd-timesyncd 服务同步时间
systemd-timesyncd 是麒麟桌面系统默认启用的轻量级 SNTP 时间同步服务,适用于大多数日常使用场景,配置简单且无需额外安装。
1、编辑时间同步配置文件:sudo nano /etc/systemd/timesyncd.conf
2、取消注释并修改 NTP 行,填入可用的国内 NTP 服务器地址,例如:NTP=ntp.aliyun.com cn.pool.ntp.org
3、保存文件后重启服务:sudo systemctl restart systemd-timesyncd
4、查看当前同步状态:timedatectl status,确认 “System clock synchronized” 显示为 yes
二、使用 chronyd 服务进行高精度时间同步
chronyd 是推荐用于麒麟 V10 SP2 及更新版本的服务,具备更强的网络适应性与更快的收敛速度,尤其适合虚拟机、移动设备或网络波动环境。
1、确认 chrony 已安装:rpm -q chrony;若未安装则执行:sudo yum install chrony -y
2、编辑主配置文件:sudo nano /etc/chrony.conf
3、在文件末尾添加或替换为以下国内可用服务器(每行一个):server ntp.tencent.com iburst
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst
4、开放防火墙 UDP 123 端口:sudo firewall-cmd --permanent --add-port=123/udp && sudo firewall-cmd --reload
5、重启并启用服务:sudo systemctl restart chronyd && sudo systemctl enable chronyd
6、验证同步源:chronyc sources -v,输出中带 ^* 标记的即为已成功连接并同步的源
三、使用 ntpd 服务进行传统 NTP 同步
ntpd 提供经典 NTP 协议支持,适用于对时间精度要求较高的服务器环境,但配置相对复杂,且在网络中断恢复后收敛较慢。
1、安装 ntp 软件包:sudo yum install ntp -y
2、备份原始配置:sudo cp /etc/ntp.conf /etc/ntp.conf.bak
3、编辑配置文件:sudo nano /etc/ntp.conf
4、注释所有原有 server 行,并添加内网或公网 NTP 地址,例如:server 192.168.1.150 prefer
server ntp.aliyun.com
5、启动服务并设为开机自启:sudo systemctl restart ntpd && sudo systemctl enable ntpd
6、检查同步状态:ntpq -p,输出中以 * 开头的条目表示当前主同步源
四、通过定时任务 + ntpdate 手动强制同步
该方法不依赖常驻服务,适合仅需周期性校准、或无法长期运行守护进程的受限环境,但需注意 ntpdate 在系统启动初期可能因网络未就绪而失败。
1、安装必要组件:sudo yum install ntp ntpdate -y
2、手动执行一次同步:sudo ntpdate -u ntp.aliyun.com
3、将同步命令写入系统级定时任务:sudo nano /etc/crontab
4、在文件末尾添加一行(每 15 分钟同步一次,并写入硬件时钟):*/15 * * * * root /usr/sbin/ntpdate -u ntp.aliyun.com && /sbin/hwclock -w
5、确保 cron 服务运行:sudo systemctl start crond && sudo systemctl enable crond
五、校准硬件时钟与系统时区
无论采用何种同步方式,若硬件时钟(RTC)长期失准,关机重启后仍会回退至错误时间。因此需确保系统时间正确后主动写入硬件时钟,并核对时区设置。
1、检查当前时区:timedatectl | grep "Time zone"
2、如非东八区,设置时区:sudo timedatectl set-timezone Asia/Shanghai
3、手动校准系统时间(仅临时应急):sudo date -s "2026-03-22 14:00:00"
4、将当前准确的系统时间写入硬件时钟:sudo hwclock -w
5、验证硬件时钟是否一致:sudo hwclock --show










