新的 ubuntu server 20.04 系统时钟无法同步

新的 ubuntu server 20.04 系统时钟无法同步

我正在尝试将系统时钟同步设置为是。即使在尝试了各种不同的端点之后,我仍然不断看到“等待来自 [端点:123] 的回复超时”。

scanlon@ogserver:~$ timedatectl
               当地时间: 星期五 2021-01-08 02:37:45 UTC
           世界时间: 星期五 2021-01-08 02:37:45 UTC
                 RTC 时间:2021-01-08 星期五 02:37:45
                时区:Etc/UTC(UTC,+0000)
系统时钟同步:否
              NTP服务:活动
          本地 TZ 中的 RTC:否

scanlon@ogserver:~$ systemctl status systemd-timesyncd
● systemd-timesyncd.service - 网络时间同步
     已加载:已加载(/lib/systemd/system/systemd-timesyncd.service;已启用;供应商预设:e
     活跃:自 2021-01-08 星期五 01:44:49 UTC;50 分钟前开始活跃(运行)
       文档:man:systemd-timesyncd.service(8)
   主 PID:4799(systemd-timesyn)
     状态:“空闲。”
      任务:2(限制:38041)
     内存:1.6M
     CGroup:/system.slice/systemd-timesyncd.service
             └─4799 /lib/systemd/systemd-timesyncd

1 月 8 日 02:28:15 ogserver systemd-timesyncd[4799]: 等待来自 192.168.0.1:123 (192.168.0.1) 的回复超时。

我的 UFW 在端口 123 上打开
     行动来自
     -- ------ ----
[ 1] 2222/tcp 允许任何地方
[ 2] 22/tcp 任何地方拒绝
[ 3] 30303 允许进入任何地方
[ 4] 1300/tcp 允许任何地方
[ 5] 1200/udp 允许任何地方
[ 6] 123/tcp 允许任何地方进入
[ 7] 123/udp 允许任何地方
[ 8] 2222/tcp (v6) 允许任何地方 (v6)
[ 9] 22/tcp (v6) 任意位置拒绝接入 (v6)
[10] 30303 (v6) 允许在任何地方进入 (v6)
[11] 1300/tcp (v6) 允许任何地方 (v6)
[12] 1200/udp (v6) 允许任何地方 (v6)
[13] 123/tcp (v6) 允许任何地方 (v6)
[14] 123/udp (v6) 允许任何地方 (v6)

我的路由器的防火墙在 123 上打开。

我在配置中尝试了多个 NTP 端点,包括:
默认
谷歌的
一些 .us 一
我的路由器状态页面上显示的 NTP 服务器
本地网关地址,希望我的路由器可以处理它。

一般来说,我的防火墙非常严格,但我的理解是 NTP 只需要 123 即可成功。

关于如何防止超时停止或将同步设置为是,有什么建议吗?我已经在每个端点上等待了几个小时,看看它是否只是需要时间来处理,但总是回到不同步和日志中更多的超时。

答案1

我的路由器有一个防火墙部分,您可以通过端口允许流量进入/流出/同时流向“所有地址”。它还具有端口转发功能。我只完成了前者,显然我需要两者。NTP 协议通信是否真的从 NTP 服务器初始化?我本以为你自己的设备(在防火墙后面)会询问现在几点,然后 NTP 服务器将被允许通过防火墙回复。事实并非如此?

答案2

这是一篇旧帖子,但我想分享我如何修复它。是的,当 NTP 客户端发送同步请求(出站流量)时,它应该允许来自 NTP 服务器的入站响应,只要防火墙是有状态的并且出站端口 123 到所有目标 IPv4/IPv6(如果 fw 支持,最好使用主机名 ntp.ubuntu.com) 被允许。

注意:我们只能使用 ntpd 或 systemd-timesyncd 服务,但不能同时使用两者,建议使用 systemd-timesyncd。

就我而言,我必须首先修复时区设置,添加防火墙规则,然后停止并启动 timedatectl 服务以强制时间同步。

date
timedatectl list-timezones | grep US
timedatectl set-timezone US/Eastern //更改时区
date
timedatectl status //系统时钟同步:没有
systemctl status systemd-timesyncd //它显示正在启动与 NTP 的通信

将出站 UDP 端口 123 的防火墙设置更改为所有 ipv4,然后...

systemctl status systemd-timesyncd //现在显示理想并且超时
timedatectl status //仍然系统时钟同步:否

然后我停止并启动服务,然后时间同步成功。

date
timedatectl status
systemctl status systemd-timesyncd
systemctl stop systemd-timesyncd
systemctl start systemd-timesyncd
systemctl status systemd-timesyncd //现在它显示理想并尝试同步
date
timedatectl status //现在系统时钟已同步:是

我希望这有帮助。

谢谢,

相关内容