VPS 時區錯誤會導致日誌時間混亂、定時任務異常、SSL 證書驗證失效等問題。本文涵蓋時區修改、NTP 網路對時、OpenVZ 限制說明。
date -R # 顯示 RFC 2822 格式時間(含時區)
timedatectl # systemd 系統查看完整狀態
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl set-timezone Asia/Shanghai
dpkg-reconfigure tzdata
yum -y install ntpdate ntpapt-get update && apt-get -y install ntpdate ntpapk add ntpdate openntpdntpdate time.windows.com
# 或使用國內源
ntpdate ntp.aliyun.com
ntpdate cn.pool.ntp.org
# CentOS 7+/RHEL 7+
systemctl enable --now ntpd
# 或使用 chronyd(更適合虛擬機/容器)
systemctl enable --now chronyd
# Debian/Ubuntu
systemctl enable --now ntp
同步系統時間後,寫入主板 CMOS:
hwclock -w # 系統時間 → 硬件時鐘
hwclock --systohc # 同義
hwclock --hctosys # 硬件時鐘 → 系統時間(啟動時自動執行)
建議設置 RTC 使用 UTC:
timedatectl set-local-rtc 0
# 或編輯 /etc/adjtime 最後一行為 UTC
OpenVZ VPS 僅可修改時區,無法修改系統時間。 容器時間與宿主機強綁定同步。若時間偏移,需聯繫服務商處理宿主機 NTP。
| 現象 | 原因 | 解決 |
|---|---|---|
| 同步失敗 "no server suitable" | 防火牆阻擋 UDP 123 | 開放出站 UDP 123 或用 ntpdate -u 無特權埠 |
| 時間忽快忽慢 | 虛擬機無獨立 RTC | 啟用 chronyd 替代 ntpd |
| 時區修改不生效 | 應用緩存舊時區 | 重啟應用/容器,或設置 TZ 環境變數 |