一、问题诊断
打开终端,执行以下命令查看当前时间状态:
timedatectl status
重点关注:
Local timeRTC timeNetwork time onNTP synchronized
二、最常见原因:NTP 服务异常(90% 概率)
手动修改时间后很快被自动覆盖,几乎都是因为系统启用了网络时间同步,但同步源有问题。
方法 1:临时关闭自动同步(适合离线环境)
# 关闭网络时间同步
sudo timedatectl set-ntp false
# 手动设置正确时间
sudo timedatectl set-time "2026-05-13 14:10:00"
# 将系统时间写入硬件时钟(关键!否则重启会丢失)
sudo hwclock --systohc
方法 2:修复 NTP 同步(推荐,适合有网络环境)
# 查看是否同时运行chronyd和systemd-timesyncd
systemctl is-active chronyd systemd-timesyncd
如果两个都显示 active,必须停用一个:
# 停用chronyd,使用系统默认的timesyncd
sudo systemctl stop chronyd
sudo systemctl disable chronyd
# 或者停用timesyncd,使用chronyd(更稳定)
# sudo systemctl stop systemd-timesyncd
# sudo systemctl disable systemd-timesyncd
# 创建timesyncd配置目录
sudo mkdir -p /etc/systemd/timesyncd.conf.d/
# 编辑配置文件
sudo nano /etc/systemd/timesyncd.conf.d/ntp-servers.conf
写入以下内容:
[Time]
NTP=ntp.aliyun.com ntp.tencent.com cn.pool.ntp.org
保存退出(Ctrl+O,回车,Ctrl+X)。
sudo systemctl restart systemd-timesyncd
sudo timedatectl set-ntp true
# 等待10秒后查看同步状态
timedatectl status
三、硬件时钟问题(重启后时间回退)
如果修改时间后重启系统才回退,说明硬件时钟本身不准确:
# 查看系统时间和硬件时间差异
date && sudo hwclock -r
# 如果硬件时间慢5分钟,先把系统时间调对
sudo timedatectl set-time "2026-05-13 14:10:00"
# 强制将系统时间写入硬件时钟
sudo hwclock --systohc
# 验证写入成功
sudo hwclock -r
四、双系统时间冲突(特殊情况)
如果是 Windows + 银河麒麟双系统,且时间差是整 8 小时(不是 5 分钟),执行:
# 让Linux把硬件时间当作本地时间(与Windows一致)
sudo timedatectl set-local-rtc 1 --adjust-system-clock
五、终极解决方案(以上都无效时)
sudo systemctl stop chronyd ntpd systemd-timesyncd
sudo systemctl disable chronyd ntpd systemd-timesyncd
sudo timedatectl set-ntp false
sudo date -s "2026-05-13 14:10:00"
sudo hwclock -w
sudo nano /etc/rc.local
在 exit 0前添加一行:
/sbin/hwclock --hctosys
保存退出,然后赋予执行权限:
sudo chmod +x /etc/rc.local
六、注意事项
- 如果是虚拟机,请先检查宿主机时间是否准确,并关闭虚拟机的 "与宿主机同步时间" 功能
- 如果以上方法都无效,可能是主板电池没电,需要更换 CMOS 电池
- 银河麒麟 V10 默认使用
systemd-timesyncd,不是传统的 ntpd