Linux fix NTP Time and set time to utc
系统时间不对, 或者有较大差异会造成很大问题. 类似于这种 :
Offset: 0.0601 ms, Stratum: 3, Time since last sync: 33 minutes 41 seconds (warn/crit at 30 minutes 0 seconds/1 hour 30 minutes)
很明显NTP 时间同步出了问题.
但看NTP 源
grep -E '^\s*(server|pool)\s+' /etc/chrony.conf | awk '{print $2}'
能看到 如
2.almalinux.pool.ntp.org
#or
0.centos.pool.ntp.org
1.centos.pool.ntp.org
2.centos.pool.ntp.org
3.centos.pool.ntp.org
不论是 almalinux 还是 centos pool , 它们都属于 pool.ntp.org 项目的子池(sub-pool),专为特定 Linux 发行版提供服务。
.centos.pool.ntp.org 和 .almalinux.pool.ntp.org 是 pool.ntp.org 的子域 它们会 动态解析到全球志愿者提供的 NTP 服务器 这些服务器 不一定位于美国,也不一定稳定(因为是社区贡献,质量参差不齐)
实际上,centos.pool.ntp.org 并不是由 CentOS 官方运维,而是由 pool.ntp.org 社区管理。很多服务器可能来自个人、小公司,甚至已下线但 DNS 未清理。
不推荐继续使用 .centos.pool.ntp.org 或 .almalinux.pool.ntp.org 原因: 子池规模小 → 容易遇到不稳定节点(比如你之前看到的 ns4v.icu) 无额外收益 → 它们只是主池的子集,没有专属高质量服务器 维护滞后 → 有些子池长期包含已失效的服务器
最佳选择:直接使用主池 *.pool.ntp.org
替换NTP源
以下是修复脚本, 经过验证 linux 通用.
- 自动安装 chrony 服务
- 替换 NTP 源.
if ! rpm -q chrony &>/dev/null; then
echo "chrony 未安装,正在安装..."
yum install -y chrony
else
echo "chrony 已安装"
fi
echo "当前NTP源"
grep -E '^\s*(server|pool)\s+' /etc/chrony.conf | awk '{print $2}'
# 1. 备份原配置
cp /etc/chrony.conf /etc/chrony.conf.bak.$(date +%Y%m%d_%H%M%S)
# 2. 生成新配置:保留非 server/pool 行 + 添加新的 4 行
awk '
!/^[[:space:]]*(server|pool)[[:space:]]/ { print }
END {
print ""
print "# Updated to use global NTP pool"
print "server time.google.com iburst"
print "server time.cloudflare.com iburst"
print "server time.nist.gov iburst"
print "server us.pool.ntp.org iburst"
}
' /etc/chrony.conf.bak.*[0-9] > /tmp/chrony.conf.new && \
mv /tmp/chrony.conf.new /etc/chrony.conf
# 3. 重启服务
systemctl restart chronyd
# 4. 验证
echo "✅ 新配置已应用:"
grep -E "^(server|pool)" /etc/chrony.conf
echo -e "\n🔄 服务已重启,当前源状态:"
chronyc sources -v
国外用:
提供商,NTP 服务器地址,特点,层级 Google,time.google.com,最推荐。LA 和 BUF 都有极佳接入。,Stratum 1 Cloudflare,time.cloudflare.com,LA 和 BUF 的 Anycast 节点,极速。,Stratum 3 NIST,time.nist.gov,美国政府源,权威稳定。,Stratum 1 US Pool,us.pool.ntp.org,自动匹配美国境内的可用节点。,2 - 4
server time.google.com iburst
server time.cloudflare.com iburst
server time.nist.gov iburst
server us.pool.ntp.org iburst
国内用:
# 阿里云 (Stratum 2)
server ntp.aliyun.com iburst
# 腾讯云 (Stratum 2)
server ntp.tencent.com iburst
# Cloudflare (Stratum 1/2)
server time.cloudflare.com iburst
# 华为云
server ntp.myhuaweicloud.com iburst
把时间设置为UTC
sudo timedatectl set-timezone UTC
sudo timedatectl set-local-rtc 0
timedatectl