Linux 安裝時若選錯時區,系統時間會偏移數小時,導致日誌時間混亂、定時任務錯亂、SSL 憑證驗證失敗。本文提供 三步修正法:查看現狀 → 修改時區設定 → 同步 NTP 網路時間,並說明硬體時鐘與系統時鐘的同步關係。

date
# 輸出範例:Fri Nov 21 00:54:08 EST 2014 ← EST (美國東部),應為 CST (中國標準時間)
date -R
# 輸出:Fri, 21 Nov 2014 00:54:08 -0500 ← 時區偏移 -0500,正確應為 +0800
EST = UTC-5,CST (中國) = UTC+8,相差 13 小時
timedatectl list-timezones | grep -i shanghai
# Asia/Shanghai
sudo timedatectl set-timezone Asia/Shanghai
# 即時生效,無需重啟
# 1. 備份原檔
sudo cp /etc/localtime /etc/localtime.bak
# 2. 連結正確時區檔 (從 /usr/share/zoneinfo/)
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 3. 驗證
date
# 應顯示 CST
cat /etc/sysconfig/clock
# ZONE="Asia/Shanghai"
# UTC=true

sudo apt/dnf/yum install chrony
sudo systemctl enable --now chronyd
# 配置 /etc/chrony.conf 指定 NTP 伺服器 (如 pool.ntp.org、cn.pool.ntp.org)
sudo chronyc sources -v # 查看同步源狀態
sudo chronyc tracking # 查看同步精度
sudo ntpdate cn.pool.ntp.org
# 或
sudo ntpdate -u time.windows.com

| 時鐘類型 | 位置 | 斷電保持 | 管理者 |
|---|---|---|---|
| 硬體時鐘 (RTC) | 主板 CMOS | 是 (電池) | BIOS/UEFI |
| 系統時鐘 | 核心記憶體 | 否 | Linux 核心 |
# 系統時鐘 → 硬體時鐘 (關機前執行)
sudo hwclock --systohc
# 硬體時鐘 → 系統時鐘 (開機後修正)
sudo hwclock --hctosys
# 查看兩者差異
hwclock --show && date
注意:虛擬機 (VMware、KVM、VirtualBox) 通常無法直接存取宿主機 RTC,建議僅依賴 chrony/ntpd 同步網路時間,忽略 hwclock。
date
# Fri Nov 21 13:54:08 CST 2014 ← 正確顯示 CST
date -R
# Fri, 21 Nov 2014 13:54:08 +0800 ← 時區偏移 +0800 正確
完成三步:確認偏移 → 設定 Asia/Shanghai → 啟用 chronyd,Linux 系統時間即可長期保持精準,告別日誌時間混亂、定時任務失效等疑難雜症。
VMware 安裝 Ubuntu 開機報錯 piix4_smbus 解決方案
Linux 分區變唯讀導致資料庫停止寫入?升級 SUSE Linux 11 SP2 徹底解決
Linux 升級 Glibc 導致系統崩潰?救援模式恢復實戰指南
Ubuntu 編譯安裝 libgdiplus 失敗?缺少 freetype 與 glib 依賴解決實錄
CentOS 7 搭建 Nginx 反向代理 + proxy_cache CDN 節點完整實戰教學
Linux 刪除檔案但磁碟空間未釋放?lsof 定位進程持有、在線清空日誌實戰