Ubuntu 16.04 时间停止同步 timedatectl 无法查询服务器,但 timesyncd 处于活动状态

Ubuntu 16.04 时间停止同步 timedatectl 无法查询服务器,但 timesyncd 处于活动状态

原始问题:

请参阅下面的更新。

我希望能得到一些帮助来解决我在 Ubuntu 服务器上遇到的问题。我正在运行 16.04 桌面版作为服务器,偶尔我注意到系统时间不同步/停止更新。通常,这会导致远程访问完全丢失,需要重新启动才能修复。以下是 systemctl status systemd-timesyncd.service 的输出:

    systemd-timesyncd.service - Network Time Synchronization
    Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; 
    vendor preset: enabled
    Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
       └─disable-with-time-daemon.conf
    Active: active (running) since Fri 2018-10-19 00:17:02 PDT; 2 days ago
    Docs: man:systemd-timesyncd.service(8)
    Main PID: 642 (systemd-timesyn)
    Status: "Synchronized to time server 91.189.91.157:123 
    (ntp.ubuntu.com)."
    CGroup: /system.slice/systemd-timesyncd.service
       └─642 /lib/systemd/systemd-timesyncd
    Oct 19 00:17:02 eric-SFF systemd[1]: Starting Network Time 
    Synchronization...
    Oct 19 00:17:02 eric-SFF systemd[1]: Started Network Time 
    Synchronization.
    Oct 19 00:37:24 eric-SFF systemd-timesyncd[642]: Synchronized to time 
    server 91.189.94.4:123 (ntp
    Oct 19 10:19:00 eric-SFF systemd-timesyncd[642]: Timed out waiting for 
    reply from 91.189.94.4:123
    Oct 19 10:19:00 eric-SFF systemd-timesyncd[642]: Synchronized to time 
    server 91.189.91.157:123 (n

以下是 timedatectl 的输出:

~$ timedatectl
Failed to query server: Connection timed out

此时系统时间大约偏差 12 小时(报告时间为昨天下午 7 点,实际时间为第二天上午 11 点)。时区正确。

我还注意到,当这种情况发生时,我的 cron 作业会停止运行,因为我有一个 cron 作业会定期检查互联网连接并将其输出报告到日志文件。此日志文件在时间不同步时停止更新。我还有一个 cron 作业会备份某些目录,而这些备份不是最新的。

如果任何其他信息有帮助,请告诉我。我对 Ubuntu 还是个新手。

谢谢!!

更新:

@Damocles 感谢您的建议。是的,计算机具有有效的网络连接。我没有设置任何防火墙规则来允许 NTP(端口 123)通过 UFW 或我的 Ubiquiti 路由器上的防火墙。但是,它仍然可以工作一段时间(有时一次几周),然后才会出现问题。这仍然是防火墙问题吗?

我继续添加了 ufw 规则,并在路由器中添加了防火墙例外和 NAT 转换,然后重新启动了服务器。目前同步成功,但我的防火墙似乎没有妨碍,因为该规则的流量计数没有增加。

还有其他什么因素会阻止此连接吗?也许某些因素一开始可以让它工作,但最终会导致 NTP 访问中断/被阻止?

我还发现此命令可以检查时间同步状态,但它返回未知的操作错误:

:~$ timedatectl timesync-status
Unknown operation timesync-status

新更新 11/1/18

我按照建议安装了 chrony,但在 24 小时内仍然遇到同样的问题。肯定出了问题。在全新启动和安装 chrony 后约 16 小时,以下是一些 chrony 命令的输出:

:~$ chronyc sources
210 Number of sources = 11
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===========================================================================
^? up2.com                       0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? 216-228-47-167.midrivers.     0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? blue.1e400.net                0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? 12.167.151.1                  0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? lithium.constant.com          0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? clock.xmission.com            0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? ha81.smatwebdesign.com        0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? srcf-ntp.stanford.edu         0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? time1.plumdev.net             0   6   377   10y     +0ns[   +0ns] +/-            
0ns
^? SunSITE.icm.edu.pl            0   6   377   10y     +0ns[   +0ns] +/-    
0ns
^? time.no-such-agency.net       0   6   377   10y     +0ns[   +0ns] +/-    
0ns
:~$ chronyc sourcestats
210 Number of sources = 11
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std 
Dev
============================================================================
up2.com                     0   0     0     +0.000   2000.000     +0ns  
4000ms
216-228-47-167.midrivers.   0   0     0     +0.000   2000.000     +0ns  
4000ms
blue.1e400.net              0   0     0     +0.000   2000.000     +0ns  
4000ms
12.167.151.1                0   0     0     +0.000   2000.000     +0ns  
4000ms
lithium.constant.com        0   0     0     +0.000   2000.000     +0ns  
4000ms
clock.xmission.com          0   0     0     +0.000   2000.000     +0ns  
4000ms
ha81.smatwebdesign.com      0   0     0     +0.000   2000.000     +0ns  
4000ms
srcf-ntp.stanford.edu       0   0     0     +0.000   2000.000     +0ns  
4000ms
time1.plumdev.net           0   0     0     +0.000   2000.000     +0ns  
4000ms
SunSITE.icm.edu.pl          0   0     0     +0.000   2000.000     +0ns  
4000ms
time.no-such-agency.net     0   0     0     +0.000   2000.000     +0ns  
4000ms

我认为“Reach”不为零意味着它通过了防火墙,所以我认为这不是问题所在。此外,这些命令最初返回了正常输出。

答案1

我假设您有一个有效的网络连接。timedatectl 的日志表明它无法连接到 91.189.94.4:123 的默认 ubuntu 时间服务器并且超时。这很可能是您这边的防火墙问题,要做的第一件事是检查 UFW(Ubuntu 的防火墙)是否允许 NTP 通过端口 123。

sudo ufw 允许 ntp

这将允许端口 123 上的流量进出,如果此后您仍然从服务器收到超时,我建议使用该命令暂时禁用 UFW 进行测试。

sudo Ufw禁用

然后检查状态,看看是否仍然超时。确保在此测试后重新启用 ufw。

如果此操作失败,则可能是您的流量被网络上的路由器阻止了。如果您有权访问此路由器,请查阅有关如何将端口列入白名单的文档或询问您的系统管理员。网络阻止除专用内部 NTP 服务器之外的所有 NTP 流量出入的情况并不少见。

相关内容