错误的主要表现:系统时间不更新,待机后时间老跳。
解决方法:
1.首先输入如下命令看时间同步情况:
$ 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命令将系统时间同步到硬件时间。