systemd-timesyncd 服务处于空闲状态且不同步时间

systemd-timesyncd 服务处于空闲状态且不同步时间

我正在尝试将运行 Ubuntu 16.04.3 LTS 的 Intel NUC 上的时间与运行 Windows PC 上的 NTP 服务器同步。

我已经检查过 NTP 服务器是否运行正常。

在我看来,好像服务没有从配置文件中读取/etc/systemd/timesyncd.conf

输出timedatectl status

      Local time: Wed 2019-01-16 21:32:01 CET
  Universal time: Wed 2019-01-16 20:32:01 UTC
        RTC time: Wed 2019-01-16 20:32:01
       Time zone: Europe/Vienna (CET, +0100)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no

systemctl status systemd-timesyncd之后输出systemctl restart systemd-timesyncd

● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor pr
  Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
           └─disable-with-time-daemon.conf
   Active: active (running) since Wed 2019-01-16 21:36:08 CET; 11s ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 2316 (systemd-timesyn)
   Status: "Idle."
   CGroup: /system.slice/systemd-timesyncd.service
           └─2316 /lib/systemd/systemd-timesyncd

Jan 16 21:36:08 coretv systemd[1]: Starting Network Time Synchronization...
Jan 16 21:36:08 coretv systemd[1]: Started Network Time Synchronization.

我的配置文件在/etc/systemd/timesyncd.conf

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.

[Time]
NTP=192.168.20.1
#FallbackNTP=ntp.ubuntu.com

如果它改变了任何东西,所有命令都会通过 ssh 连接以 root 身份运行。

我是否遗漏了什么?


编辑:

我没有时间再处理这个问题了。我会使用一种变通方法,这样我就不必依赖系统时间了。

我们仍然欢迎您提供答案,因为修复这个问题将是一个更清晰的解决方案。

答案1

我意识到这是一个老话题,但最近我遇到了完全相同的问题,我想分享我的解决方案,以便其他人可以避免花费数小时来解决问题。

对我来说,问题出在 timesyncd.conf 中的 RootDistanceMaxSec 参数上。默认值为 5 秒;但是,在 Wireshark 中查看 NTP 数据包时,根分散值约为 10 秒。我认为 systemd-timesyncd 忽略了所有 NTP 数据包,因为根分散值高于最大值。

为了解决这个问题,我修改了 timesyncd.conf,取消注释以 RootDistanceMaxSec 开头的行,并将该值更新为比我在 NTP 数据包中看到的根散射值大几秒的数字。然后我重新启动了系统,一切都运行正常。

希望这可以帮助某些人节省几个小时。

相关内容