CentOS 7怎么修改系统时间同步源
需要把/etc/chrony.conf里的默认server配置,替换成国内更稳定的时间源,例如server ntp1.aliyun.com iburst;同时还要确认iburst参数已经带上,并且整行没有语法错误。配置改完后,别忘了执行systemctl restart chronyd,让修改真正生
需要把/etc/chrony.conf里的默认server配置,替换成国内更稳定的时间源,例如server ntp1.aliyun.com iburst;同时还要确认iburst参数已经带上,并且整行没有语法错误。配置改完后,别忘了执行systemctl restart chronyd,让修改真正生效。

怎么改 /etc/chrony.conf 里的时间服务器
CentOS 7 默认用 chronyd,时间源全靠 /etc/chrony.conf 里 server 行指定。改错地址或格式,chronyd 启动后根本连不上,chronyc sources 会显示空或全是 ^(表示不可达)。
实操建议:
- 用
sudo vi /etc/chrony.conf打开配置文件,删掉默认的pool.ntp.org类行(国内访问常超时) - 替换成稳定、低延迟的国内源,例如:
server ntp1.aliyun.com iburstserver ntp2.aliyun.com iburstserver ntp.ustc.edu.cn iburst iburst必须带上——它让 chronyd 启动时发 8 个包,大幅缩短首次同步时间- 别写错域名,比如
ntp.aliyun.com已弃用,要用ntp1.aliyun.com - 改完保存,必须执行
sudo systemctl restart chronyd,否则新配置不生效
chronyc sources 显示 * 和 + 分别代表什么
运行 chronyc sources 后,每行开头的符号说明当前源是否被真正使用:
*:当前正在用的主时间源(只有一个),offset值越小越好(单位毫秒)+:备用源,已校验可用,但未被选为主源^:解析失败或网络不通(DNS 问题 / 防火墙拦截 / 地址写错)~:服务器响应异常(比如返回了错误时间或拒绝服务)
如果全是 ^,先检查 ping ntp1.aliyun.com 是否通,再确认防火墙是否放行 UDP 123 端口。
为什么改了服务器还不同步?常见卡点
改完配置却没效果,多数不是配置本身问题,而是环境或权限拦住了:
chronyd没在运行:systemctl status chronyd看状态,如果是inactive,得先start再enable- SELinux 拦截 UDP 123:
sudo setsebool -P chronyd_can_network on(尤其在 enforcing 模式下) - 硬件虚拟机(如 VMware/VirtualBox)可能禁用了时间同步功能,需在虚拟机设置里勾选“启用客户机时间同步”
- 系统时间偏差太大(>1 秒)时,
chronyd默认只做渐进调整,不会跳变——此时要手动触发:chronyc -a makestep /var/lib/chrony/drift文件权限不对(应属chrony:chrony),会导致 drift 校准失效
要不要加 makestep 这一行?
加,但得写对位置和参数。默认配置里这行是注释掉的,生产环境建议显式启用:
- 在
/etc/chrony.conf底部添加:makestep 1.0 -1 - 含义:只要系统时间偏差 ≥1.0 秒,就立刻阶跃校正(而不是慢慢 slew),
-1表示不限制次数 - 不加的话,重启后若 BIOS 时间严重不准(比如虚拟机挂起太久),
chronyd可能花十几分钟才拉回,期间日志、SSL、Kubernetes 组件都可能报错 - 注意:别写成
makestep 1 0或漏掉空格,语法错会导致chronyd启动失败
把 chrony.conf 改好之后,systemctl restart chronyd 这一步一定不能省;接着去 chronyc tracking 里盯一下 Offset,只有落在 ±5ms 以内,才算是真的稳定下来了。通常这个收敛过程只要 2–3 秒,速度明显比 ntpd 更快,不过前提也很明确:时间源得可靠,网络得通,配置还不能写错。


































