實戰:Linux系統時間不同步的三種修復方法
今天分享一下時鐘同步問題。
在日常運維工作中,我們經常會遇到 Linux 服務器時間不同步的問題。無論是系統日志亂序、定時任務錯過執行時間,還是集群通信異常,時間問題都是隱藏的大坑。
本篇文章將手把手帶你搞定 Linux 時間同步問題,分別覆蓋 外網環境 和 內網(企業私有環境) 兩大場景,附帶推薦工具和配置示例,建議收藏!
場景一:外網環境
如果服務器可以訪問公網 NTP 服務時,時間同步相對簡單。
1. ntpdate:手動同步
適合臨時性修復場景。
安裝并執行:
# Redhat/CentOS
yum install ntpdate
# Ubuntu/Debian
sudo apt install ntpdate
# 手動同步阿里云時間服務器
sudo ntpdate ntp.aliyun.com
- 優點:使用簡單
- 缺點:只同步一次,不會自動保持同步
2. chronyd:持續同步
從 7版本起推薦使用 chrony 取代 ntpd,適用于長期運行的生產服務器。
配置步驟:
# 安裝并啟動chrony服務
yum install chrony
systemctl enable --now chronyd
# 編輯配置文件
vim /etc/chrony.conf
# 替換為阿里云 NTP
server ntp.aliyun.com iburst
# 注意:有些版本配置中server改為了pool
# 重啟服務
systemctl restart chronyd
# 查看狀態
chronyc tracking
chronyc sources
優點:持續后臺同步、精度高、資源占用低
【溫馨提示】rockylinux,openEuler,麒麟V10等操作系統都是跟Redhat系列配置差不多的
3. systemd-timesyncd
Ubuntu 18.04+ 默認啟用的時間同步服務。
開啟自動同步并指定 NTP:
sudo timedatectl set-ntp true
# 可選:配置服務器地址
sudo vim /etc/systemd/timesyncd.conf
[Time]
NTP=ntp.aliyun.com
sudo systemctl restart systemd-timesyncd
場景二:無法訪問公網(內網企業環境)
在企業私有云、隔離網絡或高安全性場景下,服務器常無法連接公網,這時就必須依賴內網部署的 NTP 服務器。
1. 替換為內網NTP地址
無論你使用哪種同步方式,都需要將公網地址替換為公司提供的內網地址,如果內部NTP是域名則設置為域名:
- ntpdate:
# 域名方式同步
ntpdate ntp.internal.company.com
# IP地址方式
ntpdate 10.0.0.2
- chrony.conf :
server ntp.internal.company.com iburst
# 或者
server 10.0.0.2 iburst
- systemd-timesyncd.conf :
[Time]
NTP=ntp.internal.company.com
2. 無法同步問題排查
- 確保 UDP 123 端口未被防火墻或安全組阻斷
- DNS 解析正常(或直接使用 IP)
可使用以下命令測試 NTP 是否正常返回時間:
ntpdate -q ntp.internal.company.com
# 或者直接ping IP地址
3. 設置正確時區
無論在哪種場景,時區設置都是確保系統時間準確的關鍵:
# 設置為中國標準時間
timedatectl set-timezone Asia/Shanghai