EC2,Ubuntu:服务器之间的严重时差

我在EC2服务器上的一些testing开始失败。 当我挖掘时,原因是我的服务器之间严重的时间不匹配:

Sun Jun 22 14:43:43 UTC 2014 # Laptop Sun Jun 22 14:46:36 UTC 2014 # Server #1 Sun Jun 22 07:50:19 UTC 2014 # Server #2 

差异是显着的 – 在一台服务器上3分钟,在另一台服务器上大约7小时。

所以,我扔了一个小脚本,计算一个服务器和其他服务器之间的时间差异:

 $ $ ./time_diff.py +--------+---------------+----------------------+----------------------+-----------------------+ | Number | ip | difference (seconds) | local time (seconds) | remote time (seconds) | +--------+---------------+----------------------+----------------------+-----------------------+ | 1 | 172.31.45.17 | -142.73 | 1403448641.8 | 1403448499.07 | | 2 | 172.31.35.69 | -24977.82 | 1403448642.7 | 1403423664.87 | | 3 | 172.31.47.152 | -141.79 | 1403448643.51 | 1403448501.72 | | 4 | 172.31.47.151 | -119.05 | 1403448644.35 | 1403448525.31 | | 5 | 172.31.32.31 | -124.29 | 1403448645.2 | 1403448520.91 | | 6 | 172.31.26.134 | -122.59 | 1403448646.43 | 1403448523.85 | | 7 | 172.31.27.224 | -161.85 | 1403448647.72 | 1403448485.87 | | 8 | 172.31.17.112 | -156.70 | 1403448649.03 | 1403448492.32 | +--------+---------------+----------------------+----------------------+-----------------------+ 

这非常令人惊讶:我认为虚拟机从底层的物理机器中获得时间,并且物理机器时间由Amazon NTP服务器保存。

更新 – ntpdate我已经尝试使用ntpdate,并打开相关的UDP端口,但我无法得到它来解决漂移:

 $ sudo ntpdate -dv 0.ubuntu.pool.ntp.org 22 Jun 15:20:56 ntpdate[11889]: ntpdate [email protected] Wed Oct 9 19:08:07 UTC 2013 (1) Looking for host 0.ubuntu.pool.ntp.org and service ntp host found : hydrogen.constant.com transmit(108.61.73.243) transmit(108.61.73.244) transmit(173.255.118.107) transmit(208.87.104.40) transmit(108.61.73.243) transmit(108.61.73.244) transmit(173.255.118.107) transmit(208.87.104.40) transmit(108.61.73.243) transmit(108.61.73.244) transmit(173.255.118.107) transmit(208.87.104.40) transmit(108.61.73.243) transmit(108.61.73.244) transmit(173.255.118.107) transmit(208.87.104.40) transmit(108.61.73.243) transmit(108.61.73.244) transmit(173.255.118.107) transmit(208.87.104.40) 108.61.73.243: Server dropped: no data 108.61.73.244: Server dropped: no data 173.255.118.107: Server dropped: no data 208.87.104.40: Server dropped: no data server 108.61.73.243, port 123 stratum 0, precision 0, leap 00, trust 000 refid [108.61.73.243], 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: d75172df.1d895ce9 Sun, Jun 22 2014 15:21:03.115 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 108.61.73.244, port 123 stratum 0, precision 0, leap 00, trust 000 refid [108.61.73.244], 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: d75172df.50bc6bd2 Sun, Jun 22 2014 15:21:03.315 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 173.255.118.107, port 123 stratum 0, precision 0, leap 00, trust 000 refid [173.255.118.107], 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: d75172df.83eeeb52 Sun, Jun 22 2014 15:21:03.515 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 208.87.104.40, port 123 stratum 0, precision 0, leap 00, trust 000 refid [208.87.104.40], 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: d75172df.b722b2ea Sun, Jun 22 2014 15:21:03.715 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 22 Jun 15:21:05 ntpdate[11889]: no server suitable for synchronization found 

我如何在EC2上的Ubuntu服务器上同步时间?

为了保持时间与ntp服务器同步,只需安装软件包ntp然后重新启动服务

 /etc/init.d/ntp restart 

通过使用ntpdate -u解决。

看来EC2机器无法连接到没有这个选项的可用区之外的NTP服务器。