最近,我从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来启用系统时钟同步,但它不起作用。
对于Ubuntu18.04的类似问题,也尝试了这解决方案,这建议在crontab配置中添加一个@restart param,但这也不起作用。
发布于 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,您可能会发现以下一行
Environment=SYSTEMD_TIMEDATED_NTP_SERVICES=.service:<1st alternative NTP service>.service:<2nd alternative NTP service>.service或者您可能会找到一个EnvironmentFile引用,该引用指示可以为服务定义这样一个变量的文件。
最常见的NTP同步服务将是chronyd.service、ntp.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服务器(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服务器获得有效响应,则其输出的最后一行将指示如果没有处于调试模式,该命令将对本地系统时钟进行多大的调整。
https://unix.stackexchange.com/questions/691839
复制相似问题