NTP服务器连接失败多数不是服务器本身挂了,而是本地网络到UDP 123端口不通、防火墙拦截、配置文件写错或服务没真正跑起来,先验证端口连通性再改配置。
为什么我的ntp服务器连接失败?先从四个方向排查
NTP同步走的是UDP 123端口,和网页访问、ping命令完全不是一回事,很多人拿着ping通的结果判断网络没问题,结果NTP还是连不上,排查要按网络层、防火墙、配置文件、服务状态四个方向走。
网络不通:先验证地址和端口
- NTP用UDP协议,
ping走ICMP,两者通道不同。ping通不代表NTP能通。 - Windows验证命令:
w32tm /stripchart /computer:ntp.aliyun.com /samples:5,能返回时间偏差就说明UDP可达。 - Linux验证命令:
ntpdate -q ntp.aliyun.com,或者chronyd -q 'server ntp.aliyun.com iburst'。 - 先做域名解析检查:
nslookup ntp.aliyun.com,如果解析不出IP,后面全白搭。 - 内网机器如果本身出不了公网,任何公共NTP服务器都连不上,这不是配置问题,是网络出口被掐了。
防火墙拦截:Windows和Linux放行规则不同
- Windows系统自带防火墙一般不拦出站UDP 123,但第三方安全软件、EDR或者企业管控策略可能拦。
- Linux服务器防火墙是高频元凶,firewalld放行命令:
firewall-cmd --add-service=ntp --permanent firewall-cmd --reload
- 如果用的是ufw:
ufw allow 123/udp
- 局域网内自己搭NTP服务器时,客户端和服务器两端都要放行123端口,只放一端照样失败。
配置文件写错:ntp.conf常见错误
server行域名打错,比如ntp.aliyun.com少写一个字母。restrict限制太死,客户端直接被拒绝同步。- 时间源距离超过
maxdistance默认值会导致拒绝同步。 - 改完
/etc/ntp.conf或/etc/chrony.conf没重启服务,配置根本不生效。 - Windows手动指定NTP源时,
/manualpeerlist后面没加,0x8,同步策略不完整。

服务没起来或上层源失效
- Windows里Windows Time服务默认可能是手动启动,系统重启后没运行。
sc query w32time能看状态。 - Linux里
systemctl status chronyd或者systemctl status ntpd,服务inactive就是连不上。 - 即使服务在跑,上层NTP源本身不可达也会导致同步失败。
chronyc sources里没有^标记,说明没有可用源。 - 上层源如果是国外地址,延迟抖动大,偶尔会触发同步超时,换国内源能解决。
国内ntp服务器地址怎么选才稳定
行业共识认为,国内用户优先使用云厂商或国家授时中心的NTP服务,延迟和可达性比国外公共源稳定得多。
| 服务器地址 | 运营方 | 适用场景 |
|---|---|---|
| ntp.aliyun.com | 简米云 | 国内互联网服务器 |
| time.cloud.tencent.com | 酷番云 | 云服务器同步 |
| ntp.ntsc.ac.cn | 国家授时中心 | 科研、高精度需求 |
| cn.pool.ntp.org | NTP Pool国内节点 | 普通个人设备 |
| time.windows.com | 微软 | Windows默认,国内可达性一般 |
选择建议:
- 原来的配置写
time.windows.com,在国内部分网络下会连接超时,换成ntp.aliyun.com通常能恢复。 - 云服务器同厂商内网可能提供专属NTP地址,延迟可以压到毫秒级。
- 完全隔离的内网环境不用连公网,单独搭一台局域网NTP服务器更可控。
局域网ntp服务器搭建教程的取舍
- 树莓派或一台常开的Linux主机安装chrony:
sudo apt install chrony -y。 - 编辑
/etc/chrony/chrony.conf,注释掉默认server,添加server ntp.aliyun.com iburst。 - 添加
allow 192.168.1.0/24,允许局域网客户端访问。 - 完全离线场景启用本地时钟:
local stratum 10,客户端以这台机器为时间基准。 - 客户端把NTP地址改成树莓派局域网IP,比每个设备各自连公网更稳,也减少出口流量。

Windows时间同步失败怎么修复
Windows时间同步失败通常和默认时间源、服务启动状态、时间偏差过大有关。
更换时间源并强制同步
w32tm /config /manualpeerlist:"ntp.aliyun.com,0x8" /syncfromflags:MANUAL net stop w32time && net start w32time w32tm /resync
0x8表示客户端模式,不加的话手动指定源不会真正生效。- 提示“时间差太大”时,先手动把系统时间调到接近真实时间,再执行
w32tm /resync /rediscover。 - 执行完
w32tm /query /status,看到“已同步”才说明成功。
检查Windows Time服务
sc query w32time sc config w32time start= auto net start w32time
- 服务启动类型必须是自动,否则每次重启后时间又会慢慢漂移。
- 企业域环境里客户端时间源由域控制器下发,手动改
/manualpeerlist可能被组策略覆盖,这种场景要改域控策略而不是客户端。
Linux NTP同步失败的命令行排查方法
chrony环境排查
systemctl status chronyd chronyc tracking chronyc sources -v
chronyc tracking里Leap status显示Not synchronised,说明还没同步成功。chronyc sources -v没有^标记,说明所有源都不可达。- 查看日志:
journalctl -u chronyd -n 50 --no-pager,找No suitable source for synchronisation这行。
ntpd环境排查
systemctl status ntpd ntpq -p ntpstat
ntpq -p输出里refid是.INIT.或者reach为0,说明没连上。- 修改
/etc/ntp.conf后执行systemctl restart ntpd,需要等几分钟才能看到同步状态,不是立即生效。 ntpstat返回synchronised to NTP server才是正常。

快速恢复步骤
- 备份原配置:
cp /etc/chrony.conf /etc/chrony.conf.bak - 改成国内源:
sed -i 's/^server/#server/g' /etc/chrony.conf && echo "server ntp.aliyun.com iburst" >> /etc/chrony.conf - 放行防火墙:
firewall-cmd --add-service=ntp --permanent && firewall-cmd --reload - 重启服务:
systemctl restart chronyd - 验证:
chronyc tracking | grep System time
NTP连接失败很少是单一原因,按网络连通、防火墙、配置、服务状态四步排查,基本能定位,把默认国外源换成国内ntp服务器地址,可以解决相当一部分连接超时问题,服务是否真正同步,最终要以chronyc sources或w32tm /stripchart这类实测命令为准,不能只凭服务启动状态判断。
Q&A:ntp服务器连接失败常见疑问
ntp服务器连接失败怎么检查端口?
不要用telnet,telnet测的是TCP,NTP走UDP 123,Windows用w32tm /stripchart /computer:ntp.aliyun.com /samples:5,Linux用ntpdate -q ntp.aliyun.com,返回时间偏差信息说明端口可达,提示超时先查防火墙和出网策略。
Windows时间同步失败和NTP服务器地址有关系吗?
有直接关系,默认的time.windows.com在部分国内网络下访问不稳定,换成ntp.aliyun.com或time.cloud.tencent.com后,w32tm /resync成功概率会明显提高,同时要确认Windows Time服务已启动,否则地址正确也无法同步。
Linux NTP同步失败后如何快速切换国内源?
先备份/etc/chrony.conf,注释掉原有server行,追加server ntp.aliyun.com iburst,执行firewall-cmd --add-service=ntp --permanent放行端口,最后systemctl restart chronyd,用chronyc sources -v确认出现^标记即完成同步,仍然失败就检查DNS解析和服务器本身能否出公网。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/808314.html

