当前位置:首页>Linux>谁懂啊!Linux 系统时间改对后总自动回退,今天彻底解决

谁懂啊!Linux 系统时间改对后总自动回退,今天彻底解决

  • 2026-10-11 07:14:22
谁懂啊!Linux 系统时间改对后总自动回退,今天彻底解决

一、问题诊断

打开终端,执行以下命令查看当前时间状态:

timedatectl status

重点关注:

  • Local time
    :当前系统时间
  • RTC time
    :主板硬件时钟时间
  • Network time on
    :是否启用网络时间同步
  • NTP synchronized
    :NTP 是否同步成功

二、最常见原因:NTP 服务异常(90% 概率)

手动修改时间后很快被自动覆盖,几乎都是因为系统启用了网络时间同步,但同步源有问题。

方法 1:临时关闭自动同步(适合离线环境)

# 关闭网络时间同步
sudo timedatectl set-ntp false

# 手动设置正确时间
sudo timedatectl set-time "2026-05-13 14:10:00"

# 将系统时间写入硬件时钟(关键!否则重启会丢失)
sudo hwclock --systohc

方法 2:修复 NTP 同步(推荐,适合有网络环境)

  1. 检查是否有多个时间服务冲突:
# 查看是否同时运行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
  1. 配置国内可靠的 NTP 服务器:
# 创建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)。

  1. 重启服务并强制同步:
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

五、终极解决方案(以上都无效时)

  1. 完全禁用所有自动同步服务:
sudo systemctl stop chronyd ntpd systemd-timesyncd
sudo systemctl disable chronyd ntpd systemd-timesyncd
sudo timedatectl set-ntp false
  1. 手动设置时间并写入硬件:
sudo date -s "2026-05-13 14:10:00"
sudo hwclock -w
  1. 添加开机自动同步硬件时间:
sudo nano /etc/rc.local

在 exit 0前添加一行:

/sbin/hwclock --hctosys

保存退出,然后赋予执行权限:

sudo chmod +x /etc/rc.local

六、注意事项

  • 如果是虚拟机,请先检查宿主机时间是否准确,并关闭虚拟机的 "与宿主机同步时间" 功能
  • 如果以上方法都无效,可能是主板电池没电,需要更换 CMOS 电池
  • 银河麒麟 V10 默认使用 systemd-timesyncd,不是传统的 ntpd

最新文章

随机文章