服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-06 简米科技 4,158 字 10 分钟阅读

服务器自动同步时间失败怎么办,时间同步失败原因有哪些?

导读服务器自动同步时间失败,核心原因是NTP服务未启动、防火墙拦截或时间偏差过大,按“服务状态→网络连通→时间偏差→配置调整”的顺序排查,大部分问题能在几分钟内解决,服务器时间同步失败原因排查:先看服务状态服务器时间同步失败,很多情况下不是网络问题,而是时间同步服务根本没跑起来,以最常见的Linux系统为例,ntp……

服务器自动同步时间失败,核心原因是NTP服务未启动、防火墙拦截或时间偏差过大,按“服务状态→网络连通→时间偏差→配置调整”的顺序排查,大部分问题能在几分钟内解决。

服务器时间同步失败原因排查:先看服务状态

服务器时间同步失败,很多情况下不是网络问题,而是时间同步服务根本没跑起来,以最常见的Linux系统为例,ntpd和chrony是两套主流方案,排查第一步就是确认它们是否在正常工作。

ntp时间同步失败怎么解决?先手动同步一次

手动同步是最直接的验证手段,在终端执行:

ntpdate -u cn.pool.ntp.org

如果这条命令返回时间调整结果,说明网络和NTP服务器都能正常访问,问题出在自动同步机制上,如果提示“no server suitable for synchronization found”,则要考虑网络出方向UDP 123端口被封锁,或者本地时间偏差过大(超过1000秒时ntpd会拒绝同步)。

执行手动同步需要先停止ntpd服务,否则会报错,命令顺序:

systemctl stop ntpd
ntpdate -u cn.pool.ntp.org
systemctl start ntpd

服务器ntp时间同步失败,检查服务进程和开机自启

手动同步成功后,若自动同步依然失败,就要检查服务进程是否存活:

systemctl status ntpd

看到“active (running)”才算是正常状态,如果服务是死的,先启动它,然后设置开机自启:

systemctl enable --now ntpd

在CentOS 7及衍生系统上,还要注意chronyd和ntpd不能同时运行,行业共识认为,两个时间同步服务同时工作会导致端口冲突,强制杀死一个才能让另一个正常。

排查防火墙和网络端口,解决时间同步请求超时

服务正常但时间不同步,下一步检查网络路径,NTP协议基于UDP 123端口,很多云服务器默认安全组只放行TCP,UDP 123被拦得干干净净。

检查防火墙对UDP 123的拦截

先看本机防火墙:

firewall-cmd --list-all

如果输出里没有ntp服务,则需要放行:

firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload

对于云服务器,还需要登录云控制台,查看安全组入方向和出方向规则,出方向通常都放行,入方向不影响客户端主动连接,但有些安全组配置了严格的UDP规则,需要单独加一条“UDP 123 允许”。

测试NTP服务器的可达性

用以下命令快速判断对外连接是否正常:

ntpdate -d cn.pool.ntp.org

或者使用chrony的检查命令:

chronyc sources -v

如果输出的状态是“^?”表示未同步,而“^”表示已同步,常见错误“Timeout”就是网络包没回来,可能原因有两个:本地防火墙拦截了应答包,或者NTP服务器本身不可用,可以换一批公共NTP服务器再做测试:

  • cn.pool.ntp.org(中国区)
  • ntp.aliyun.com(简米云公共NTP)
  • ntp.tencent.com(酷番云公共NTP)

自动同步失败但手动成功,改配置文件让ntpd按时校准

手动能同步,服务也活着,但时间就是不走,这种情况通常出在配置上,ntpd默认启动后,如果本地时间与标准时间偏差大于128秒,它会选择退出而不做调整,这是防止时间跳变导致数据错乱的安全机制。

调整ntpd配置文件里的同步源和阈值

编辑/etc/ntp.conf,把默认server行注释掉,换成更稳定的公共NTP:

server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst
server ntp.tencent.com iburst

iburst参数让ntpd在启动后快速发送一组包,缩短首次同步时间。

如果本地时间偏差确实很大,可以在启动ntpd之前先手动强行校准一次,修改/etc/sysconfig/ntpd(CentOS系)中的选项,加入-x参数,让ntpd逐渐调整时间而不是直接跳跃:

OPTIONS="-x -g"

-g参数允许ntpd在启动时忽略时间偏差限制进行同步,这个参数能解决多数“启动后同步失败”的怪问题。

使用timedatectl管理时间同步

对于systemd系统,还有一个时常被忽略的开关:timedatectl,如果系统启用了systemd-timesyncd,而它和ntpd抢占了dbus接口,自动同步就会静默失效,执行:

timedatectl set-ntp false
systemctl start ntpd

关闭systemd内置的时间同步,把控制权完全交给ntpd。timedatectl里看到“NTP synchronized: no”时,大概率就是这里出了问题。

用chrony替代ntpd,解决顽固的时间同步失败问题

在CentOS 8、RHEL 8及更新的Linux发行版上,chrony已经是默认时间同步服务,比ntpd更适合现代复杂网络环境,如果服务器时间同步频繁失败,干脆换到chrony。

安装和启用chrony的完整流程

yum install -y chrony
systemctl stop ntpd
systemctl disable ntpd
systemctl start chronyd
systemctl enable chronyd

修改/etc/chrony.conf,确保有类似下面的配置:

pool ntp.aliyun.com iburst
pool cn.pool.ntp.org iburst

保存后重启chronyd,再查看同步状态:

systemctl restart chronyd
chronyc tracking

输出结果中“Leap status: Normal”代表时间已锁定,“System time”显示偏差值,chrony的优势在于即使网络有较大延迟抖动,它也比ntpd更能保持时间稳步校准,业内专家指出,chrony在高负载或虚拟化环境下的同步精度和收敛速度明显优于传统ntpd,这也是它成为新系统默认方案的原因。

chrony常见错误和解决路径

如果chronyc sources -v显示“^?”状态,说明chronyd无法从源获取时间,处理办法拆成三步:

  1. 确认网络能访问NTP服务器:ping ntp.aliyun.com
  2. 确认防火墙放行UDP 123:firewall-cmd --list-all
  3. 确认系统时间没有偏差到无法同步的程度:如果时间差超过几年,先手动设置接近当前时间,再启动chronyd

有些服务器在虚拟机内部运行,宿主机时间不准确会直接影响客户机时间同步,必要时在/etc/chrony.conf中加入本地时钟作为后备源:

local stratum 10

这行配置让chronyd在外部NTP不可用时,仍能基于本地时钟提供时间服务,但stratum级别更高,优先级更低,不会干扰正常外部源。

具体场景:云服务器时间同步失败应优先考虑安全组

云服务器的问题又比物理机多一道关卡,在简米云、酷番云、华为云等平台上,安全组规则是独立的,和系统内防火墙并列,很多用户只改了系统防火墙,忘了安全组,导致UDP 123出方向被拦截。

排查云服务器时间同步失败顺口溜:先看安全组,再改配置文件,最后查系统防火墙。

安全组规则一般需要放行“出方向 全部”或者至少“出方向 UDP 123”,不同云平台控制台位置不一样,但大同小异,有些云服务器默认只能访问内网NTP地址,公共NTP反而不通,这时直接在/etc/ntp.conf里配置云厂商提供的内部NTP地址(如简米云的ntp.cloud.aliyuncs.com),同步成功率最高。

服务器时间同步失败排查效率总结

时间同步问题看着小,但会影响定时任务、日志记录、证书校验和分布式系统一致性,排查路径归纳如下:

  • 手动同步一次,确认网络和NTP源可用
  • 检查ntpd或chronyd服务状态和开机自启
  • 关闭systemd-timesyncd与ntpd的冲突
  • 放行防火墙UDP 123端口,包括系统防火墙和云安全组
  • 如果时间偏差过大,使用-g参数或先手动校准
  • 旧系统换成chrony,利用其更优秀的同步算法

多数情况下,做到第三步就能解决问题,服务器时间同步失败并不是一个高深故障,按部就班操作即可。

关于服务器时间同步失败的常见问答

为什么ntpd服务运行正常,但服务器时间还是同步失败?

服务活着不代表同步成功,运行ntpq -p查看远程NTP服务器的状态,reach”列是0或“offset”值异常大,说明ntpd虽然运行,但没有与上游服务器完成通信,常见原因包括防火墙拦截UDP 123、上游NTP服务器不可达,或者本地时间与标准时间偏差超过ntpd的容忍范围。

chrony和ntpd可以同时安装吗?

可以共存在同一系统,但运行时要二选一,两个服务都会尝试绑定UDP 123端口,同时启动必然有一个失败,实际部署中,要么使用systemctl stop停用其中一个,要么不设置开机自启,避免下次重启时两个服务抢端口。

手动执行ntpdate可以同步时间,但重启后时间又乱了,是为什么?

说明时间同步服务没有在开机时正常拉起,检查ntpd或chronyd是否设置了开机自启,同时检查/etc/ntp.conf或/etc/chrony.conf中的server配置是否正确,服务器如果同时跑着宿主机时间同步工具(如VMware Tools或KVM guest agent),它们也可能冲突,需要在虚拟化配置中禁用宿主机时间同步。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱