全部產品
Search
文件中心

Elastic Compute Service:在 ECS 執行個體上實現精確時間同步

更新時間:Dec 06, 2025

為解決因時間不同步導致的定時任務錯亂、日誌時間戳記不一及分布式系統時鐘紊亂等問題,可配置時間同步服務,為執行個體自動校準時間。

工作原理

  • NTP (Network Time Protocol):網路時間協議,它通過計算網路延遲,實現用戶端與伺服器之間毫秒級的時間同步。

  • 阿里雲NTP伺服器:阿里雲部署的NTP伺服器,提供Virtual Private Cloud內網的存取點,能讓ECS執行個體在極低的網路延遲下與伺服器進行時間同步。

  • chrony/ntpd/W32time:時間同步服務,負責使用NTP協議將執行個體系統時間與NTP伺服器進行同步。在 Linux/Unix 系統上,chrony效能優於ntpd,Windows系統使用內建的W32time服務。

確認是否需要時間同步

如何快速檢查執行個體時間是否準確

Linux(chrony)

阿里雲公用鏡像中包含了預設的時間同步配置,基於公用鏡像建立的ECS執行個體會預設運行chrony進行時間同步。部分老舊的公用鏡像預設啟動並執行是ntpd,可使用ps -C chronyd,ntpd -o comm=查看,若返回進程為ntpd則說明預設啟動並執行是ntpd,需參見Linux(ntpd)確認是否需要時間同步。

執行以下命令擷取目前時間同步狀態的詳細資料,可通過查看System time評估目前時間是否準確(本樣本中的0.000027851 seconds fast of NTP time表示當前系統時間比NTP服務時間快0.000027851秒)。將此偏差與業務容忍度進行比較,若超出範圍,則需調整時間配置以保證系統時間準確。

若需要對多台執行個體檢查時間是否準確,可使用雲助手批量檢查
sudo chronyc tracking
Reference ID    : 64643D58 (100.100.61.88)
Stratum         : 2
Ref time (UTC)  : Tue Oct 28 05:53:58 2025
System time     : 0.000027851 seconds fast of NTP time
Last offset     : +0.000044533 seconds
RMS offset      : 0.000036478 seconds
Frequency       : 41.053 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.007 ppm
Root delay      : 0.000408892 seconds
Root dispersion : 0.011003596 seconds
Update interval : 1028.9 seconds
Leap status     : Normal

Linux(ntpd)

執行以下命令擷取目前時間同步狀態的詳細資料,可通過查看offset評估目前時間是否準確(本樣本中的1009.26表示當前系統時間與NTP服務時間相差1009.26毫秒)。將此偏差與業務容忍度進行比較,若超出範圍,則需調整時間配置以保證系統時間準確。

若需要對多台執行個體檢查時間是否準確,可使用雲助手批量檢查
sudo ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 LOCAL(0)        .LOCL.          10 l  107   64    2    0.000    0.000   0.000
+47.96.XXX.XXX   100.100.61.91    2 u   37   64    3   31.241  1009.95   1.313
 11.116.XXX.XX   .INIT.          16 u    -   16    0    0.000    0.000   0.000
-100.100.3.1     10.137.55.181    2 u   52   64    7   25.344  1010.26   0.566
-100.100.3.2     10.137.55.181    2 u   18   64    7   26.873  1008.80   2.143
-100.100.3.3     10.137.55.181    2 u   66   64   12   29.656  1010.16   0.902
-203.107.6.88    10.137.55.181    2 u   65   64    7   33.689  1005.74   0.697
 11.196.XXX.XXX  .INIT.          16 u    -   16    0    0.000    0.000   0.000
 11.196.XXX.XX   .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.143.0.44     .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.143.0.45     .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.143.0.46     .INIT.          16 u    -   16    0    0.000    0.000   0.000
+100.100.5.1     203.107.X.XX     2 u   59   64    7   53.214  1009.42   0.519
*100.100.5.2     203.107.X.XX     2 u   58   64    7   49.062  1009.26   0.984
-100.100.5.3     203.107.X.XX     2 u   57   64    7   56.670  1011.81   3.331

Windows

Win + R,輸入cmd,然後按Enter,開啟命令提示字元,輸入命令w3tm /query /status。可通過查看根分散評估目前時間是否準確(本樣本中的7.7612440s表示當前系統時間與NTP服務時間相差7.7612440秒)。將此偏差與業務容忍度進行比較,若超出範圍,則需調整時間配置以保證系統時間準確。

若需要對多台執行個體檢查時間是否準確,可使用雲助手批量檢查
Leap 指示符: 0(無警告)
層次: 3 (次引用 - 與(S)NTP 同步)
精度: -23 (每刻度 119.209ns)
根延遲: 0.0259591s
根分散: 7.7612440s
引用 ID: 0x64640302 (源 IP:  100.100.3.2)
上次成功同步時間: 2025/10/28 15:05:02
源: ntp11.cloud.aliyuncs.com,0x9
輪詢間隔: 6 (64s)

配置時間同步

Linux(chrony)

阿里雲公用鏡像中包含了預設的時間同步配置,基於公用鏡像建立的ECS執行個體會預設運行chrony進行時間同步。部分老舊的公用鏡像預設啟動並執行是ntpd,可使用ps -C chronyd,ntpd -o comm=查看,若返回進程為ntpd則說明預設啟動並執行是ntpd,需參見Linux(ntpd)配置時間同步。

若需要對多台執行個體配置時間同步,可使用雲助手批量執行

一、檢查並配置NTP伺服器位址

  1. 編輯chrony設定檔。

    Alibaba Cloud Linux/CentOS/RHEL

    sudo vim /etc/chrony.conf

    Ubuntu/Debian

    sudo vim /etc/chrony/chrony.conf
  2. 配置阿里雲NTP伺服器。

    #注釋檔案中所有以 server 開頭的行,將下面內容複寫到設定檔中。

    配置多個NTP伺服器,可通過冗餘實現容錯,並通過擇優提升時間精度與效率。
    # 配置資訊,包含了 NTP 伺服器位址,最小輪詢間隔,最大輪詢間隔等資訊。
    server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
  3. 儲存設定檔並退出,重啟chrony

    sudo systemctl restart chronyd.service

二、驗證時間同步

重啟後的服務會逐步平滑地調整時間,可通過執行sudo chronyc tracking 來驗證時間同步狀態。

sudo chronyc tracking

輸出中的System time 欄位(本樣本中的0.000036150 seconds fast of NTP time表示當前系統時間比NTP服務時間快)能精確顯示當前系統時間與NTP時間的微小偏差。

當系統時間偏差過大(達數分鐘或數小時)且業務能容忍一次時間跳變時,可以考慮手動同步時間
Reference ID    : 64643D58 (100.100.61.88)
Stratum         : 2
Ref time (UTC)  : Sat Sep 20 07:55:33 2025
System time     : 0.000036150 seconds fast of NTP time
Last offset     : +0.000031322 seconds
RMS offset      : 0.000044841 seconds
Frequency       : 43.592 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.005 ppm
Root delay      : 0.000228760 seconds
Root dispersion : 0.010518964 seconds
Update interval : 1029.1 seconds
Leap status     : Normal

Linux(ntpd)

阿里雲ECS執行個體中部分老舊的公用鏡像(如CentOS 6)預設配置了ntpd服務。由於NTP官方已停止維護,建議將其升級為Chrony以獲得更好的效能和安全性。

若需要對多台執行個體配置時間同步,可使用雲助手批量執行

一、檢查並配置NTP伺服器位址

  1. 編輯NTP設定檔。

    sudo vim /etc/ntp.conf
  2. 配置阿里雲NTP伺服器。

    #注釋檔案中所有以 server 開頭的行,將下面內容複寫到設定檔中。

    配置多個NTP伺服器,可通過冗餘實現容錯,並通過擇優提升時間精度與效率。
    # 配置資訊,包含了 NTP 伺服器位址,最小輪詢間隔,最大輪詢間隔等資訊。
    server ntp10.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp11.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp12.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp7.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp8.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp9.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
  3. 儲存設定檔並退出,重啟ntpd

    Alibaba Cloud Linux/CentOS/RHEL

    sudo service ntpd restart

    Ubuntu/Debian

    service ntp restart

二、驗證時間同步

重啟後的服務會逐步平滑地調整時間,可通過執行sudo ntpq -p來驗證時間同步狀態,其輸出中的offset 欄位以表示本地時間和伺服器時間的差異。主要參數如下:

  • offset:系統時間與伺服器時間的差值(以毫秒為單位)。offset越接近於0,系統就和伺服器的時間越接近。

  • jitter:時間延遲的變化程度。這個數值的絕對值越小系統時間就越精確。

當系統時間偏差過大(達數分鐘或數小時)且業務能容忍一次時間跳變時,可以考慮手動同步時間
sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 LOCAL(0)        .LOCL.          10 l   17   64    1    0.000    0.000   0.000
+100.100.3.1     10.137.55.181    2 u    8   16    1   30.426  -307.76   0.153
*100.100.3.2     10.137.55.181    2 u    5   16    1   26.845  -309.25   0.221
+100.100.3.3     10.137.55.181    2 u    4   16    1   28.819  -309.37   0.187
-100.100.5.1     203.107.X.XX     2 u    3   16    1   50.478  -310.70   0.164
-100.100.5.2     203.107.X.XX     2 u    2   16    1   47.235  -311.89   0.246
 100.100.5.3     203.107.X.XX     2 u    1   16    1   53.661  -310.50   0.119

Windows

圖形化介面

建議將 Windows Server 預設的NTP伺服器 (time.windows.com) 更改為阿里雲NTP伺服器(以Windows Server 2022為例)。

  1. 在工作列的通知區域,單擊日期和時間,並單擊日期和時間設定

    image

  2. 在設定頁面,單擊相關設定>添加不同時區的時鐘

  3. 日期和時間裡,單擊Internet 時間>更改設定(C)...

  4. Internet 時間設定對話方塊裡,勾選與Internet時間伺服器同步(S),填寫ntp.cloud.aliyuncs.com,並單擊立即更新,然後單擊確定

  5. 驗證時間同步。當出現時鐘與對應伺服器同步成功時表示已與伺服器進行時間同步,若時間同步失敗,請檢查防火牆或安全軟體是否阻止了UDP 123連接埠。

    image

命令提示字元

若需要對多台執行個體配置時間同步,可使用雲助手批量執行

一、配置 NTP 伺服器

建議將 Windows Server 預設的NTP伺服器 (time.windows.com) 更改為阿里雲NTP伺服器(以Windows Server 2022為例)。

  1. Win + R,輸入cmd,然後按Enter,開啟命令提示字元。

  2. 設定 NTP 伺服器。以 ntp11.cloud.aliyuncs.com 為例。

     w32tm /config /manualpeerlist:"ntp11.cloud.aliyuncs.com" /syncfromflags:manual /reliable:YES /update
  3. 重啟時間服務。

     net stop w32time
     net start w32time
  4. 與NTP伺服器同步時間。

    w32tm /resync

二、驗證時間同步

運行命令w3tm /query /status:如果顯示為 Local CMOS Clock,而不是匹配置的NTP伺服器位址,則說明同步失敗。

 w32tm /query /status
Leap 指示符: 0(無警告)
層次: 3 (次引用 - 與(S)NTP 同步)
精度: -23 (每刻度 119.209ns)
根延遲: 0.0020371s
根分散: 0.0191713s
引用 ID: 0x64640302 (源 IP:  100.100.3.2)
上次成功同步時間: 2025/10/28 14:37:42
源: ntp11.cloud.aliyuncs.com,0x9
輪詢間隔: 10 (1024s)

常見問題

如何強制手動同步系統時間?

為了避免時間跳變的風險,不建議手動同步時間。若系統時間與標準時間的偏差非常大(例如,幾分鐘甚至幾小時),並且業務能夠容忍一次時間跳變時,可執行手動同步時間。

Linux(chrony)

  1. 停止chrony

    sudo systemctl stop chronyd.service
  2. 手動同步時間。

    sudo chronyd -q
  3. 啟動chrony

    sudo systemctl start chronyd.service

Linux(ntpd)

Alibaba Cloud Linux/CentOS/RHEL

  1. 停止ntpd

    sudo service ntpd stop
  2. 手動同步時間。

    sudo service ntpdate start
  3. 啟動ntpd

    sudo service ntpd start

Ubuntu/Debian

  1. 停止ntpd

    sudo service ntp stop
  2. 手動同步時間。

    sudo ntpdate ntp.cloud.aliyuncs.com ntp7.cloud.aliyuncs.com ntp10.cloud.aliyuncs.com ntp11.cloud.aliyuncs.com ntp12.cloud.aliyuncs.com
  3. 啟動ntpd

    sudo service ntp start

阿里雲NTP伺服器網域名稱有哪些?

各網路下的阿里雲NTP伺服器位址(僅支援IPv4協議)如下表所示。

  • 阿里雲ECS執行個體:推薦使用VPC內網網域名稱,以獲得更低的網路延遲。

  • 非阿里雲執行個體:可使用公網網域名稱進行同步。

Virtual Private Cloud內網

公網

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服務進行時間同步。

如何將ntpd升級為chrony

阿里雲ECS執行個體中,CentOS 6等部分老舊鏡像配置為NTP服務,當前NTP服務官方已經不再維護。如果ECS執行個體使用的是NTP服務,且業務不依賴NTP服務,建議升級為Chrony。

  1. 卸載 ntp 服務。

    Alibaba Cloud Linux/CentOS/RHEL
    sudo yum remove ntp
    Ubuntu/Debian
    sudo apt remove ntp
  2. 安裝Chrony

    如果下載失敗,參見CentOS6(停止維護)導致的yum下載chrony失敗如何解決?

    Alibaba Cloud Linux/CentOS/RHEL
    sudo yum install chrony
    Ubuntu/Debian
    sudo apt update
    
    sudo apt install chrony
  3. 配置Chrony

    編輯設定檔

    Alibaba Cloud Linux/CentOS/RHEL

    sudo vim /etc/chrony.conf

    Ubuntu/Debian

    sudo vim /etc/chrony/chrony.conf

    在此檔案中,可添加 NTP 伺服器和其他配置。這是一個簡單的 chrony.conf 樣本:

    # NTP server settings
    server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    # 指定漂移檔案的位置
    driftfile /var/lib/chrony/drift
    # 允許從本地查詢 chronyd
    allow 127.0.0.1

    設定檔的參數解析:

    參數

    說明

    server ntp.cloud.aliyuncs.com

    這是 NTP 伺服器的網域名稱。chrony 將串連到這個伺服器以擷取時間同步。

    minpoll 4

    指定最小的輪詢間隔(以 2 的冪為單位)。minpoll 4 表示最小的輪詢間隔為 2⁴=16 秒。這意味著 chrony 至少每 16 秒就會與此伺服器進行一次同步請求。

    maxpoll 10

    指定最大的輪詢間隔。maxpoll 10 表示最大的輪詢間隔為 2¹⁰=1024 秒。

    iburst

    這是一個補充參數,用於加快初次同步過程。當 chrony 啟動後,它會通過發送一組快速請求(通常是 8 個請求)來快速擷取伺服器的時間,確保在短時間內迅速獲得準確的時間。

  4. 啟動chrony服務。

    1. 啟動Chrony 服務並設定為開機自啟動。

      # 啟動 chrony 服務
      sudo service chronyd start
      
      # 設定 chrony 在系統啟動時自動啟動
      sudo chkconfig chronyd on
    2. 檢查chrony狀態。使用 chronyc 工具來檢查 chrony 的狀態和同步情況。

      # 檢查服務狀態
      sudo service chronyd status
    3. 驗證時間同步。執行命令查看主伺服器的狀態以及本地時鐘與時間伺服器之間的偏差。

      sudo chronyc tracking

CentOS6(停止維護)導致的yum下載chrony失敗如何解決?

  1. 清理舊的repo配置。

    sudo mkdir -p /etc/yum.repos.d/backup && sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
  2. 建立指向官方存檔的新配置。 直接運行下面的命令,它會建立一個新的 CentOS-Vault.repo 檔案。

    sudo tee /etc/yum.repos.d/CentOS-Vault.repo <<'EOF'
    [C6.10-base]
    name=CentOS-6.10 - Base
    baseurl=http://vault.centos.org/6.10/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    enabled=1
    [C6.10-updates]
    name=CentOS-6.10 - Updates
    baseurl=http://vault.centos.org/6.10/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    enabled=1
    [C6.10-extras]
    name=CentOS-6.10 - Extras
    baseurl=http://vault.centos.org/6.10/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    enabled=1
    EOF
  3. 清理緩衝並重建。

    sudo yum clean all && sudo yum makecache
  4. 下載chrony

    sudo yum install chrony

相關文檔

  • 如需瞭解更多關於Linux時間的相關概念及操作,或者想瞭解關於Linux公用鏡像中時間配置的變化,請參見Linux時間和時區說明

  • PTP時鐘同步服務通過硬體級時間戳記和動態路徑補償,實現亞微秒級精準時鐘同步,保障分布式系統時序一致性,適用於高頻金融交易等對時間精度要求嚴苛的情境。