Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

CentOS 系統時間設定三大方法:本地時間、UTC 與 NTP 同步完整指南

編輯:關於 Linux

Linux 系統時間管理涉及硬體時鐘(RTC)、系統時鐘(Kernel time)、時區與網路時間協定(NTP)。CentOS 提供 hwclock/timedatectl、timeconfig(舊版)、chrony/ntp 三大設定路徑。本文整理三種方法的適用場景、指令操作與最佳實踐。

時間架構基礎概念

元件說明查看指令
硬體時鐘 (RTC)主機板電池供電,關機時維持走時hwclock --show
系統時鐘核心維護,開機從 RTC 讀取,精度高(納秒)date, timedatectl
時區設定/etc/localtime 指向 /usr/share/zoneinfo/ 對應檔案timedatectl status
UTC vs 本地時間RTC 可存 UTC 或本地時間,雙系統建議 UTCtimedatectl | grep RTC

方法一:本地時間 / 硬體時鐘手動設定 (hwclock / clock)

適用:離線環境、嵌入式裝置、舊版 CentOS 5/6。

查看當前硬體時間

hwclock --show
# 或
clock --show

設定硬體時間(需 root)

hwclock --set --date "2024-03-15 14:30:00"
# 格式: YYYY-MM-DD HH:MM:SS

同步方向控制

# 系統時間 → 硬體時間 (關機前執行)
hwclock --systohc
# 或
hwclock -w

# 硬體時間 → 系統時間 (開機自動執行)
hwclock --hctosys

設定時區

ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
# 或
timedatectl set-timezone Asia/Taipei

方法二:UTC 世界標準時間設定 (timeconfig / timedatectl)

適用:CentOS 6/7 文字介面設定、雙系統共存環境。

CentOS 6/7 互動式設定

timeconfig
# 文字選單:選擇時區 → 詢問 "Hardware clock is set to UTC?" → Yes/No

設定結果寫入 /etc/sysconfig/clock:

ZONE="Asia/Taipei"
UTC=true
ARC=false

CentOS 7/8/9 現代指令

timedatectl set-local-rtc 0  # RTC 使用 UTC (推薦)
timedatectl set-timezone Asia/Taipei
timedatectl set-time "2024-03-15 14:30:00"
timedatectl set-ntp true  # 啟用 NTP

方法三:NTP 網路時間協定同步 (chrony / ntpdate)

適用:所有生產環境、叢集、需高精度同步場景。現代系統請使用 chrony(CentOS 7+ 預設),取代舊版 ntpd。

Chrony 伺服器端設定

# /etc/chrony.conf
server time.google.com iburst
server time.cloudflare.com iburst
server ntp.aliyun.com iburst
allow 192.168.0.0/16  # 允許區網客戶端同步
local stratum 10      # 斷網時提供本地時間
systemctl enable --now chronyd
firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload

Chrony 客戶端設定

# /etc/chrony.conf
server 內網NTP伺服器IP iburst
# 或直接使用公共 NTP
server time.google.com iburst
server time.cloudflare.com iburst
systemctl enable --now chronyd

即時手動同步

chronyc -a makestep  # 強制立即階躍同步
# 或舊版
ntpdate -u time.google.com

查看同步狀態

chronyc sources -v
chronyc tracking
ntpq -p  # 相容 ntpd 指令

快速設定速查表(日常最常用)

# 1. 設定時區
timedatectl set-timezone Asia/Taipei

# 2. 設定系統時間 (若無 NTP)
timedatectl set-time "2024-03-15 14:30:00"

# 3. 同步至硬體時鐘
hwclock -w

# 4. 啟用 NTP 自動同步 (Chrony)
timedatectl set-ntp true
# 等同 systemctl enable --now chronyd

常見問題

現象原因與解決
雙系統 (Windows + Linux) 時間相差 8 小時Windows 預設 RTC=本地時間,Linux 預設 RTC=UTC。
Linux 執行 timedatectl set-local-rtc 1 --adjust-system-clock 或 Windows 修改註冊表 RealTimeIsUniversal=1
虛擬機時間漂移安裝 chrony 並啟用 ntp,宿主機開啟時間同步服務
ntpdate: no server suitable for synchronization found防火牆封鎖 UDP 123,或 NTP 伺服器不可達,換用 chrony 並指定可達伺服器
RTC time is in the past主機板電池耗盡,更換 CR2032 電池

總結

CentOS 系統時間管理現代最佳實踐:RTC 使用 UTC (timedatectl set-local-rtc 0) + 正確時區 + Chrony NTP 自動同步。手動設定僅用於離線/初始化場景。雙系統環境務必統一 RTC 模式避免時間跳躍。

Copyright © Windows教程網 All Rights Reserved