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