全部产品
Search
文档中心

云服务器 ECS:管理时间同步服务

更新时间:Feb 01, 2024

时间的准确度对于ECS实例非常重要,它可以确保定时任务准确执行、日志时间戳正确记录等。为避免在ECS实例上运行业务时出现数据不一致、安全漏洞及业务流程故障等问题,阿里云提供了时间同步服务以确保实例的时间准确。

时间同步服务简介

时间同步服务用于与NTP服务器同步时间以确保ECS实例时间准确,它是基于网络时间协议(Network Time Protocol,简称NTP)实现的。阿里云ECS实例会默认运行Chrony或者NTP服务进行时间同步。

关于时间同步服务的更多信息请参见Chrony服务和NTP服务阿里云NTP服务器地址列表

管理时间同步服务

阿里云公共镜像中包含了默认的时间同步配置,基于公共镜像创建的ECS实例会默认运行Chrony或者NTP服务进行时间同步,正常情况下您无需干预时间同步服务。

您可以按照以下步骤,检查当前ECS实例的时间同步服务是否正常,并根据具体诉求执行相关操作。

  1. 确认ECS实例中使用的是Chrony服务还是NTP服务,具体操作请参见查看ECS实例中使用的时间同步服务

  2. 根据使用的时间同步服务,执行以下操作确认服务是否正常。如果服务正常可以不做任何修改,如果您的业务对时间敏感可以按需修改相关配置。

查看时间同步服务状态确认是否需要修改配置

查看ECS实例中使用的时间同步服务

您可以执行以下命令查看ECS实例中已使用的时间同步服务。如果ECS实例使用的是NTP服务,并且您的业务不依赖NTP服务,建议升级为Chrony服务。

sudo ps aux | grep -E "ntpd|chronyd"
  • 返回如下信息时表示使用的时间同步服务为Chrony。

    image

  • 返回如下信息时表示使用的时间同步服务为NTP。

    说明

    阿里云ECS实例中,CentOS 6等部分老旧镜像配置为NTP服务,当前NTP官方已经不再维护。如果您的业务不依赖NTP服务,建议升级为Chrony服务。

    image

查看当前时间是否准确

请根据您的ECS实例中使用的时间同步服务,执行相应的命令查看当前时间是否准确。Chrony服务和NTP服务会逐步调整时间,从而避免时间跳变的风险。如果您的业务要求当前时间必须准确,可以手动同步时间,具体操作请参见手动同步时间

Chrony服务

执行以下命令可以获取当前时间同步状态的详细信息,包括系统时间偏差、系统时间的稳定性以及最后一次同步的时间等。您可以通过查看System time评估当前时间是否准确。

sudo chronyc tracking

返回信息示例如下:

image

NTP服务

执行以下命令可以获取已配置的NTP服务器以及对应的状态指标,其中偏移量offset可以大致表示本地时间和服务器时间的差异。

sudo ntpq -p

返回信息示例如下:

image

查看时间同步服务器地址确认是否需要修改

请根据您的ECS实例中使用的时间同步服务,执行相应的命令查看配置的时间同步服务器。如果您的业务要求配置指定的时间同步服务器,可以参考配置NTP服务器地址

Chrony服务

cat /etc/chrony.conf

返回的内容中server <NTP服务器> minpoll 4 maxpoll 10 iburst可以查看配置的时间同步服务器。

NTP服务

cat /etc/ntp.conf

返回的内容中server <NTP服务器> iburst minpoll 4 maxpoll 10可以查看配置的时间同步服务器。

配置时间同步服务

手动同步时间

阿里云ECS实例默认运行的Chrony或者NTP服务会逐步调整时间,避免时间跳变的风险,不建议手动同步时间。如果因为业务需要,必须要手动同步时间,请按以下步骤进行操作。

  1. 查看ECS实例中使用的时间同步服务,具体操作请参见查看ECS实例中使用的时间同步服务

  2. 根据使用的时间同步服务,执行相应的命令手动同步时间。

    Chrony服务

    sudo chronyc makestep

    当系统返回信息为200 OK时,表示Chrony服务已手动同步完成。

    image

    NTP服务

    重要

    当前NTP官方已经停止维护,使用ntpdate进行手动时间同步有时钟跳变的风险,如必须使用,请在ntpdate命令后添加3个或3个以上的时钟源,尽可能规避风险。更多阿里云NTP服务器信息,请参见阿里云NTP服务器地址列表

    • 专有网络VPC实例

      sudo ntpdate ntp.cloud.aliyuncs.com ntp7.cloud.aliyuncs.com ntp10.cloud.aliyuncs.com ntp11.cloud.aliyuncs.com ntp12.cloud.aliyuncs.com
    • 经典网络实例

      sudo ntpdate ntp1.cloud.aliyuncs.com ntp2.cloud.aliyuncs.com ntp3.cloud.aliyuncs.com ntp4.cloud.aliyuncs.com ntp5.cloud.aliyuncs.com

配置NTP服务器地址

如果您的业务没有特殊需求不需要修改NTP服务器地址,但如果您的业务要求配置指定的时间同步服务器,则需要根据您的ECS实例中使用的时间同步服务,执行相应的操作配置NTP服务器地址。关于在Linux操作系统如何确认使用的时间同步服务,请参见查看ECS实例中使用的时间同步服务

Linux(Chrony)

CentOS 7和Alibaba Cloud Linux 2及以上版本的实例都使用Chrony服务实现时间同步。Chrony可以更快更准确地同步系统时钟,最大限度地减少时间和频率误差。

  1. 在实例安全组的入方向添加安全组规则并放行UDP 123端口。具体操作,请参见添加安全组规则

  2. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  3. 配置NTP服务器。

    如果您需要配置为阿里云的NTP服务器,请配置下面步骤中的<NTP服务器>,具体请参见阿里云NTP服务器地址列表。关于如何选择阿里云NTP服务器地址,请参见NTP服务同步异常怎么办?

    1. 执行以下命令,进入chrony配置文件。

      sudo vim /etc/chrony.conf
    2. 屏蔽不需要的NTP服务器。在配置文件中找到server <NTP服务器> minpoll 4 maxpoll 10 iburst的信息后,按i键编辑文件,在您暂时不需要的NTP服务器句首前添加符号#进行隐藏。

    3. 添加新的NTP服务器。您可以在配置文件中添加新的NTP服务器,格式为:server <NTP服务器> minpoll 4 maxpoll 10 iburst

    4. 完成编辑后按Esc键并输入:wq保存退出。

  4. 启动Chrony服务。

    1. 依次执行以下命令,启动chronyd服务并设置开机自启动。

      sudo systemctl start chronyd.service
      sudo systemctl enable chronyd.service
    2. 执行以下命令,查看本机时间同步状态,用于验证服务是否已启动。

      sudo chronyc tracking
    3. 执行以下命令,查看时间同步服务器列表。

      sudo chronyc -n sources -v

Linux(NTP)

阿里云ECS实例中,CentOS 6等部分老旧镜像配置为NTP服务。如果您的时间同步服务运行正常可以不做任何修改,但如果业务要求配置指定的时间同步服务器,请参考以下操作。

  1. 在实例安全组的入方向添加安全组规则并放行UDP 123端口。具体操作,请参见添加安全组规则

  2. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  3. 配置NTP服务器。

    如果您需要配置为阿里云的NTP服务器,请配置下面步骤中的<NTP服务器>,具体请参见阿里云NTP服务器地址列表。关于如何选择阿里云NTP服务器地址,请参见NTP服务同步异常怎么办?

    1. 执行以下命令,进入NTP配置文件。

      sudo vim /etc/ntp.conf
    2. 屏蔽不需要的NTP服务器。在配置文件中找到server <NTP服务器> iburst minpoll 4 maxpoll 10的信息后,按i键编辑文件,在您暂时不需要的NTP服务器句首前添加符号#进行隐藏。

    3. 添加新的NTP服务器。您可以在配置文件中添加新的NTP服务器,格式为:server <NTP服务器> iburst minpoll 4 maxpoll 10

    4. 完成编辑后按Esc键并输入:wq保存退出。

  4. 启动NTP服务。

    1. 依次执行以下命令,启动NTP服务并设置开机自启动。

      sudo service ntpd start
      sudo chkconfig ntpd on
    2. 执行以下命令,查看NTP服务运行状态。

      sudo ntpstat
    3. 执行以下命令,查看NTP服务对等端的列表信息。

      sudo ntpq -p

Windows

Windows Server操作系统默认配置微软NTP服务器(time.windows.com),但是可能经常同步出错。使用阿里云ECS实例时,您可以将默认NTP服务器更换成阿里云提供的内网NTP服务器。本文以Windows Server 2016系统为例,介绍如何修改默认NTP服务器地址。

  1. 远程连接Windows实例。

    具体操作,请参见通过密码或密钥认证登录Windows实例

  2. 在任务栏的通知区域,单击日期和时间,并单击日期和时间设置

    image

  3. 在设置页面,单击添加不同时区的时钟

    image

  4. 日期和时间对话框里,单击Internet 时间页签,然后单击更改设置(C)...

    image

  5. Internet 时间设置对话框里,选中与Internet时间服务器同步(S)...,填写一个阿里云内网NTP服务器地址,并单击立即更新,然后单击确定。关于NTP服务器地址,请参见阿里云NTP服务器地址列表

    重要

    当时钟同步失败时,可能是实例中存在第三方杀毒软件,请关闭杀毒软件后重新同步。

    image

  6. 单击确定

附录

Chrony服务和NTP服务

时间同步服务

使用场景

时间同步精度

稳定性

简介

Chrony服务

适用于高精度、高稳定性、自动化等场景。

较高

能够更好地适应高延迟和不稳定的网络环境。

Chrony是一个实现网络时间协议(NTP)的软件包,用于同步计算机的系统时间与世界各地的NTP服务器。Chrony特别适合在变化的网络环境中运行,能够以快速和高效的方式调整系统时间。更多信息,请参见Chrony

NTP服务

适用于大多数无需太高精度要求的普通场景。

正常

仅能适应一定程度的网络不稳定。

NTP是一种经典的时间同步服务,是NTP协议的一个实现。NTP适用于长期运行的服务器,特别是在网络条件比较稳定的环境下。更多信息,请参见NTP

阿里云NTP服务器地址列表

各网络下的阿里云NTP服务器地址(仅支持IPv4协议)如下表所示。如果您需要修改阿里云NTP服务器地址,可以参考该列表。

经典网络内网

专有网络VPC内网

公网

ntp1.cloud.aliyuncs.com

ntp2.cloud.aliyuncs.com

ntp3.cloud.aliyuncs.com

ntp4.cloud.aliyuncs.com

ntp5.cloud.aliyuncs.com

ntp6.cloud.aliyuncs.com

ntp.cloud.aliyuncs.com

ntp7.cloud.aliyuncs.com

ntp8.cloud.aliyuncs.com

ntp9.cloud.aliyuncs.com

ntp10.cloud.aliyuncs.com

ntp11.cloud.aliyuncs.com

ntp12.cloud.aliyuncs.com

ntp.aliyun.com

ntp1.aliyun.com

ntp2.aliyun.com

ntp3.aliyun.com

ntp4.aliyun.com

ntp5.aliyun.com

ntp6.aliyun.com

ntp7.aliyun.com

常见问题

阿里云NTP服务器是否收费?

不收费。阿里云公共镜像中包含了默认的时间同步配置,基于公共镜像创建的ECS实例会默认运行Chrony或者NTP服务进行时间同步。

NTP服务同步异常怎么办?

请先确认您的服务器的网络类型,请根据对应的网络类型选择对应的NTP服务器地址。关于NTP服务器地址请参见阿里云NTP服务器地址列表。其中公网NTP服务器地址面向整个互联网,时间准确性和稳定性不及内网的NTP服务器地址。

  • 网络类型为专有网络:NTP服务器地址在专有网络VPC内网这一列选择。

  • 网络类型为经典网络:NTP服务器地址在经典网络内网这一列选择。

相关文档

如果您希望了解更多关于Linux时间的相关概念及操作,或者想了解关于Linux公共镜像中时间配置的变化,请参见Linux时间和时区说明