升级到 pop_os 21.10 后系统时钟同步不起作用

升级到 pop_os 21.10 后系统时钟同步不起作用

我最近从 21.04 升级到 pop_os 21.10,每次启动设备时,我都会在计算机上设置随机时间/日期。设置下的自动日期和时间不起作用。

以下是 的输出timedatectl

               Local time: Wed 2022-02-23 10:43:32 IST
           Universal time: Wed 2022-02-23 05:13:32 UTC
                 RTC time: Wed 2019-07-24 03:48:55
                Time zone: Asia/Kolkata (IST, +0530)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

我尝试运行timedatectl set-ntp true以启用系统时钟同步,但它不起作用。

也尝试过Ubuntu 18.04 的类似问题的解决方案建议@restart在配置中添加一个参数crontab,但这也不起作用。

答案1

因为timedatectl表示 NTP 服务处于活动状态,但时钟仍未同步,这意味着 NTP 服务无法联系任何 NTP 服务器,可能是因为该服务未完全配置或因为防火墙阻止了 NTP 数据包。

第一个任务是找出同步服务的实际名称。

您可以在 中找到详细信息man systemd-timedated.service,但基本上检查目录或/usr/lib/systemd/ntp-units.d/名称带有扩展名的文件。这些文件将定义可以使用的潜在 NTP 服务的名称,如果有多个文件,则文件的字母数字排序将确定其优先顺序。/usr/local/lib/systemd/ntp-units.d//etc/systemd/ntp-units.d.listtimedatectl.list

或者,服务的优先顺序可以由 的环境变量定义systemd-timedated.service。如果你跑步systemd cat systemd-timedated.service | grep Environment,你可能会发现这样一行

Environment=SYSTEMD_TIMEDATED_NTP_SERVICES=<primary NTP service>.service:<1st alternative NTP service>.service:<2nd alternative NTP service>.service

或者您可能会找到一个EnvironmentFile引用,指示可以为服务定义此类变量的文件。

最常见的 NTP 同步服务是chronyd.servicentp.service(或ntpd.service在某些发行版中)和systemd-timesyncd.service,因此即使您找不到任何指示优先顺序的内容,它也很可能是这三个服务之一。

如果用于 NTP 同步的服务是chronyd.service,则查询其连接状态的命令是chronyc sources -a -v

对于ntp[d].service,您可以使用ntpq -np.

chronyc sources和的输出ntpq -np有些相似:当 NTP 同步正常工作时,列表最左边的列中应该有一个星号,指示该系统当前同步到的服务器。该Reach列将以八进制数字形式指示最新 8 个 NTP 请求的状态:如果 NTP 服务器已响应所有这些请求,则该列中的值将为377。值Reach表示0服务器不可访问。

要查询状态systemd-timesyncd.service,可以使用timedatectl timesync-status.

一旦您知道同步服务器尝试使用哪些 NTP 服务器,您就可以开始对它们的连接进行故障排除。如果要使用的NTP服务器列表为空或错误,您应该先更正它并重新启动同步服务(或重新启动系统)。

对于,NTP 服务器将在或 文件中chronyd列出。/etc/chrony/chrony.conf/etc/chrony/sources.d/*.source

对于ntp[d].service,配置文件将为/etc/ntp.conf.

systemd-timesyncd.service其配置在/etc/systemd/timesyncd.conf和/或/etc/systemd/timesyncd.conf.d/*.conf文件中,但也可以通过/etc/systemd/network/*.network文件或 DHCP 配置信息进行配置。

如果ntpdate安装了该命令,其调试模式可用于测试与 NTP 服务器的连接。运行ntpdate -d <NTP server name or IP address>并查看输出。如果输出的最后一行显示no server suitable for synchronization found,则该命令无法联系您指定的 NTP 服务器。如果该命令从 NTP 服务器获得有效响应,则其输出的最后一行将指示该命令的数量将有如果未处于调试模式,则调整本地系统时钟。

相关内容