首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到pop_os 21.10之后,系统时钟同步无法工作

升级到pop_os 21.10之后,系统时钟同步无法工作
EN

Unix & Linux用户
提问于 2022-02-23 06:10:16
回答 1查看 12.5K关注 0票数 0

最近,我从21.04升级到了pop_os 21.10,每次我启动设备时,都会在机器上随机设置时间/日期。设置下的自动日期和时间无法工作。

以下是timedatectl的输出:

代码语言:javascript
复制
               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来启用系统时钟同步,但它不起作用。

对于Ubuntu18.04的类似问题,也尝试了解决方案,这建议在crontab配置中添加一个@restart param,但这也不起作用。

EN

回答 1

Unix & Linux用户

发布于 2022-02-23 09:32:20

因为timedatectl说NTP服务是活动的,但时钟仍然不同步,这意味着NTP服务无法联系到任何NTP服务器,这可能是因为该服务没有完全配置,或者是因为防火墙阻塞了NTP数据包。

第一个任务是确定同步服务的实际名称。

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

或者,服务的首选顺序可以由systemd-timedated.service的环境变量定义。如果您运行systemd cat systemd-timedated.service | grep Environment,您可能会发现以下一行

代码语言:javascript
复制
Environment=SYSTEMD_TIMEDATED_NTP_SERVICES=.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 sourcesntpq -np的输出在某种程度上是相似的:当NTP同步正常工作时,列表中最左边的列中应该有一个星号,指示该系统当前同步到的服务器。Reach列将将最近的8个NTP请求的状态表示为八进制数:如果所有这些请求都已由NTP服务器响应,则该列中的值将为377Reach0表示无法访问服务器。

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

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

对于chronyd,NTP服务器将在/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 并查看输出。如果输出的最后一行为no server suitable for synchronization found,则命令无法与您指定的NTP服务器联系。如果该命令从NTP服务器获得有效响应,则其输出的最后一行将指示如果没有处于调试模式,该命令将对本地系统时钟进行多大的调整。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/691839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档