错误的主要表现:系统时间不更新,待机后时间老跳。

解决方法:
1.首先输入如下命令看时间同步情况:

$ timedatectl

显示如下:
timedatectl

2.设置ntp时间同步

timedatectl set-ntp true

提示:

Failed to set ntp: NTP not supported

原因是systemd-timesyncd没装,systemd提供了 systemd-timesyncd 客户端,它是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端。与NTP的复杂实现相比,这个服务简单的多,它只专注于从远程服务器查询然后同步到本地时钟。
先安装systemd-timesyncd。

sudo apt install systemd-timesyncd

此时显示时间同步激活:
时间同步激活
问题基本解决。

3.如果你认为时间同步服务器时灵时不灵,多数因为时间服务器在国外,网络原因造成的。因为大多数 Linux 发行版都提供了一个默认配置,它指向发行版维护的时间服务器上,因此可以修改ntp同步服务器。可以/etc/systemd/timesyncd.conf 中配置你的(时间)服务器。

sudo nano /etc/systemd/timesyncd.conf

可以修改其中:

NTP=ntp.ntsc.ac.cn

timesyncd.conf中被注释掉的其它各项的含义:

  • FallbackNTP=“一个空格分隔的NTP服务器列表,用作备用NTP服务器。 可以使用主机名,也可以使用IP地址。”
  • RootDistanceMaxSec=“最大可接受的"root distance"秒数(最大误差)。 默认值为 5 秒。”
  • PollIntervalMinSec=, PollIntervalMaxSec=“NTP消息的 最小/最大轮询间隔秒数。”
    PollIntervalMinSec= 必须不小于 16 秒。 PollIntervalMaxSec= 必须大于
    PollIntervalMinSec= 。 PollIntervalMinSec= 默认为 32
    秒,PollIntervalMaxSec= 默认为 2048 秒。对时间隔在最大和最小间隔之间。
  • ConnectionRetrySec=“更新失败时重新连接服务器时间”
  • SaveIntervalSec=“储存间隔时间”

4.systemd-timesyncd只会更改系统时间不会更改硬件时间,可以通过hwclock -w命令将系统时间同步到硬件时间。

最后修改:2024 年 07 月 13 日
如果觉得我的文章对你有用,请随意赞赏