我尝试过什么:

我尝试过什么:

我已经有了我的 Ubuntu EC2 机器上的时间准确性存在一些严重问题,漂移时间超过 60 秒。

一种可能的解决方案是运行ntpdatentp,但我无法让它们在 EC2 上运行:

$ sudo ntpdate ntp.nasa.gov time-b.nist.gov
23 Jun 07:17:23 ntpdate[3878]: no server suitable for synchronization found

我尝试过什么:

  • 我正在测试的特定机器上的端口对 TCP 和 UDP 、入站和出站开放(见下文)。
  • 我已经在多台机器上测试了这种行为。
  • 我尝试过不同的时间服务器。
  • 我已经尝试过ntpdatentp

知道如何同步我的机器上的时间吗?

安全组

在此处输入图片描述 在此处输入图片描述

详细日志

$ sudo ntpdate -vd ntp.nasa.gov time-b.nist.gov
23 Jun 07:24:08 ntpdate[3890]: ntpdate [email protected] Wed Oct  9 19:08:07 UTC 2013 (1)
Looking for host ntp.nasa.gov and service ntp
host found : ntp-nasa.arc.nasa.gov
Looking for host time-b.nist.gov and service ntp
host found : time-b.nist.gov
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
198.123.30.132: Server dropped: no data
129.6.15.29: Server dropped: no data
server 198.123.30.132, port 123
stratum 0, precision 0, leap 00, trust 000
refid [198.123.30.132], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  0:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  0:00:00.000
transmit timestamp:  d752549e.e0fc7517  Mon, Jun 23 2014  7:24:14.878
filter delay:  0.00000  0.00000  0.00000  0.00000
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

server 129.6.15.29, port 123
stratum 0, precision 0, leap 00, trust 000
refid [129.6.15.29], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  0:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  0:00:00.000
transmit timestamp:  d752549f.142f86b3  Mon, Jun 23 2014  7:24:15.078
filter delay:  0.00000  0.00000  0.00000  0.00000
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

23 Jun 07:24:17 ntpdate[3890]: no server suitable for synchronization found

答案1

您的安全组看起来像 VPC 版本,如果是这样的话,我必须在我的网络 ACL 上打开 UDP123/UDP* 才能使其正常工作。VPC 有两层数据包过滤,网络 ACL 后面是安全组。SG 是有状态的(首次连接时不需要入站规则),但 NACL 是无状态的(需要规则来接收数据包)。一旦我添加了适当的配置行,NTP 就可以完美运行。

我仅将该行添加到运行我的服务实例的外部 NACL 中,以便它们可以访问外部 NTP,然后它们为我的网络的其余部分运行 NTP 代理。

祝你好运!

答案2

在 EC2 中,该-u标志是必需的:

$ sudo ntpdate -u ntp.nasa.gov time-b.nist.gov
24 Jun 11:16:33 ntpdate[27714]: adjust time server 129.6.15.29 offset 0.047272 sec

来自手册:

   -u     Direct ntpdate to use an unprivileged port for outgoing packets.  This is most useful when behind a firewall that blocks incoming traffic to
          privileged ports, and you want to synchronise with hosts beyond the firewall. Note that the -d option always uses unprivileged ports.

答案3

亚马逊提供Amazon 时间同步服务这消除了您遇到的时间漂移​​。每个 EC2 实例上要执行的总体步骤如下:

  1. 使用以下方式删除 NTPsudo apt-get remove ntp
  2. 使用安装 Chronysudo apt install chrony
  3. 用于sudo vim /etc/chrony/chrony.conf编辑要包含的文件server 169.254.169.123 prefer iburst
  4. 使用以下方法重启 Chronysudo /etc/init.d/chrony restart
  5. 验证 Chrony 是否使用了正确的 IP chronyc sources -v,并验证输出是否包含“^* 169.254.169.123”
  6. 通过浏览目录来确定最佳使用城市ls /usr/share/zoneinfo/
  7. 使用上一步中的路径从 UTC 更新时区,例如sudo timedatectl set-timezone /usr/share/zoneinfo/America/Chicago

相关内容