時間的準確性和一致性對於ECS執行個體非常重要,它可以確保定時任務準確執行、日誌時間戳記正確記錄等。為避免在ECS執行個體上運行業務時出現資料不一致、安全性漏洞及商務程序故障等問題,阿里雲提供了NTP時間同步服務以確保執行個體的時間準確。
時間同步服務簡介
時間同步服務用於與NTP伺服器同步時間以確保ECS執行個體時間準確,它是基於網路時間協議(Network Time Protocol,簡稱NTP)實現的。阿里雲ECS執行個體會預設運行Chrony或者NTP服務進行時間同步。
關於時間同步服務的更多資訊請參見Chrony服務和NTP服務和阿里雲NTP伺服器位址列表。
行政時間同步服務
阿里雲公用鏡像中包含了預設的時間同步配置,基於公用鏡像建立的ECS執行個體會預設運行Chrony或者NTP服務進行時間同步,正常情況下您無需幹預時間同步服務。
您可以按照以下步驟,檢查當前ECS執行個體的時間同步服務是否正常,並根據具體訴求執行相關操作。
確認ECS執行個體中使用的是Chrony服務還是NTP服務,具體操作請參見查看ECS執行個體中使用的時間同步服務。
根據使用的時間同步服務,執行以下操作確認服務是否正常。如果服務正常可以不做任何修改,如果您的業務對時間敏感可以按需修改相關配置。
查看目前時間是否準確。Chrony服務和NTP服務會逐步調整時間,從而避免時間跳變的風險。如果您的業務要求目前時間必須準確,可以手動同步時間,具體操作請參見手動同步時間。
查看時間同步伺服器位址是否需要修改。如果您的業務要求配置指定的時間同步伺服器,可以參考配置NTP伺服器位址。
查看時間同步服務狀態確認是否需要修改配置
查看ECS執行個體中使用的時間同步服務
您可以執行以下命令查看ECS執行個體中已使用的時間同步服務。如果ECS執行個體使用的是NTP服務,並且您的業務不依賴NTP服務,建議升級為Chrony服務。
sudo ps aux | grep -E "ntpd|chronyd"
返回如下資訊時表示使用的時間同步服務為Chrony。
返回如下資訊時表示使用的時間同步服務為NTP。
說明阿里雲ECS執行個體中,CentOS 6等部分老舊鏡像配置為NTP服務,當前NTP官方已經不再維護。如果您的業務不依賴NTP服務,建議升級為Chrony服務。
查看目前時間是否準確
請根據您的ECS執行個體中使用的時間同步服務,執行相應的命令查看目前時間是否準確。Chrony服務和NTP服務會逐步調整時間,從而避免時間跳變的風險。如果您的業務要求目前時間必須準確,可以手動同步時間,具體操作請參見手動同步時間。
Chrony服務
執行以下命令可以擷取目前時間同步狀態的詳細資料,包括系統時間偏差、系統時間的穩定性以及最後一次同步的時間等。您可以通過查看System time評估目前時間是否準確。
sudo chronyc tracking
返回資訊樣本如下:
NTP服務
執行以下命令可以擷取已配置的NTP伺服器以及對應的狀態指標,其中位移量offset可以大致表示本地時間和伺服器時間的差異。
sudo ntpq -p
返回資訊樣本如下:
查看時間同步伺服器位址是否需要修改
請根據您的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服務會逐步調整時間,避免時間跳變的風險,不建議手動同步時間。如果因為業務需要,必須要手動同步時間,請按以下步驟進行操作。
查看ECS執行個體中使用的時間同步服務,具體操作請參見查看ECS執行個體中使用的時間同步服務。
根據使用的時間同步服務,執行相應的命令手動同步時間。
Chrony服務
sudo chronyc makestep
當系統返回資訊為
200 OK
時,表示Chrony服務已手動同步完成。NTP服務
重要當前NTP官方已經停止維護,使用
ntpdate
進行手動時間同步有時鐘跳變的風險,如必須使用,請在ntpdate命令後添加3個或3個以上的時鐘源,儘可能規避風險。更多阿里雲NTP伺服器資訊,請參見阿里雲NTP伺服器位址列表。Virtual Private Cloud執行個體
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可以更快更準確地同步系統時鐘,最大限度地減少時間和頻率誤差。
在執行個體安全性群組的入方向添加安全性群組規則並允許存取UDP 123連接埠。具體操作,請參見添加安全性群組規則。
遠端連線Linux執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
配置NTP伺服器。
如果您需要配置為阿里雲的NTP伺服器,請配置下面步驟中的
<NTP伺服器>
,具體請參見阿里雲NTP伺服器位址列表。關於如何選擇阿里雲NTP伺服器位址,請參見NTP服務同步異常怎麼辦?。執行以下命令,進入
chrony
設定檔。sudo vim /etc/chrony.conf
屏蔽不需要的NTP伺服器。在設定檔中找到
server <NTP伺服器> minpoll 4 maxpoll 10 iburst
的資訊後,按i
鍵編輯檔案,在您暫時不需要的NTP伺服器句首前添加符號#
進行隱藏。添加新的NTP伺服器。您可以在設定檔中添加新的NTP伺服器,格式為:
server <NTP伺服器> minpoll 4 maxpoll 10 iburst
。完成編輯後按
Esc
鍵並輸入:wq
儲存退出。
啟動Chrony服務。
依次執行以下命令,啟動
chronyd
服務並設定開機自啟動。sudo systemctl start chronyd.service sudo systemctl enable chronyd.service
執行以下命令,查看本機時間同步狀態,用於驗證服務是否已啟動。
sudo chronyc tracking
執行以下命令,查看時間同步伺服器列表。
sudo chronyc -n sources -v
Linux(NTP)
阿里雲ECS執行個體中,CentOS 6等部分老舊鏡像配置為NTP服務。如果您的時間同步服務運行正常可以不做任何修改,但如果業務要求配置指定的時間同步伺服器,請參考以下操作。
在執行個體安全性群組的入方向添加安全性群組規則並允許存取UDP 123連接埠。具體操作,請參見添加安全性群組規則。
遠端連線Linux執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
配置NTP伺服器。
如果您需要配置為阿里雲的NTP伺服器,請配置下面步驟中的
<NTP伺服器>
,具體請參見阿里雲NTP伺服器位址列表。關於如何選擇阿里雲NTP伺服器位址,請參見NTP服務同步異常怎麼辦?。執行以下命令,進入
NTP
設定檔。sudo vim /etc/ntp.conf
屏蔽不需要的NTP伺服器。在設定檔中找到
server <NTP伺服器> iburst minpoll 4 maxpoll 10
的資訊後,按i
鍵編輯檔案,在您暫時不需要的NTP伺服器句首前添加符號#
進行隱藏。添加新的NTP伺服器。您可以在設定檔中添加新的NTP伺服器,格式為:
server <NTP伺服器> iburst minpoll 4 maxpoll 10
。完成編輯後按
Esc
鍵並輸入:wq
儲存退出。
啟動NTP服務。
依次執行以下命令,啟動
NTP
服務並設定開機自啟動。sudo service ntpd start sudo chkconfig ntpd on
執行以下命令,查看NTP服務運行狀態。
sudo ntpstat
執行以下命令,查看NTP服務對等端的列表資訊。
sudo ntpq -p
Windows
Windows Server作業系統預設配置微軟NTP伺服器(time.windows.com),但是可能經常同步出錯。使用阿里雲ECS執行個體時,您可以將預設NTP伺服器更換成阿里雲提供的內網NTP伺服器。本文以Windows Server 2016系統為例,介紹如何修改預設NTP伺服器位址。
遠端連線Windows執行個體。
具體操作,請參見通過密碼或密鑰認證登入Windows執行個體。
在工作列的通知區域,單擊日期和時間,並單擊日期和時間設定。
在設定頁面,單擊添加不同時區的時鐘。
在日期和時間對話方塊裡,單擊Internet 時間頁簽,然後單擊更改設定(C)...。
在Internet 時間設定對話方塊裡,選中與Internet時間伺服器同步(S)...,填寫一個阿里雲內網NTP伺服器位址,並單擊立即更新,然後單擊確定。關於NTP伺服器位址,請參見阿里雲NTP伺服器位址列表。
重要當時鐘同步失敗時,可能是執行個體中存在第三方殺毒軟體,請關閉殺毒軟體後重新同步。
單擊確定。
附錄
Chrony服務和NTP服務
時間同步服務 | 使用情境 | 時間同步精度 | 穩定性 | 簡介 |
Chrony服務 | 適用於高精度、高穩定性、自動化等情境。 | 較高 | 能夠更好地適應高延遲和不穩定的網路環境。 | Chrony是一個實現網路時間協議(NTP)的軟體包,用於同步電腦的系統時間與世界各地的NTP伺服器。Chrony特別適合在變化的網路環境中運行,能夠以快速和高效的方式調整系統時間。更多資訊,請參見Chrony。 |
NTP服務 | 適用於大多數無需太高精度要求的普通情境。 | 正常 | 僅能適應一定程度的網路不穩定。 | NTP是一種經典的時間同步服務,是NTP協議的一個實現。NTP適用於長期啟動並執行伺服器,特別是在網路條件比較穩定的環境下。更多資訊,請參見NTP。 |
阿里雲NTP伺服器位址列表
各網路下的阿里雲NTP伺服器位址(僅支援IPv4協議)如下表所示。如果您需要修改阿里雲NTP伺服器位址,可以參考該列表。
傳統網路內網 | Virtual Private Cloud內網 | 公網 |
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 |
常見問題
相關文檔
如果您希望瞭解更多關於Linux時間的相關概念及操作,或者想瞭解關於Linux公用鏡像中時間配置的變化,請參見Linux時間和時區說明。