首页/网络/网络排障速查/curl 退出码判读(6/7/28/35/52)

curl 退出码判读(6/7/28/35/52)

脚本化排障靠退出码分类:6=DNS 失败、7=连接失败、28=超时、35=TLS 握手失败、52=服务端空回复;先按码定性,再逐层深入。

网络排障速查网络更新于 2026-10-12

退出码

退出码含义优先怀疑
6无法解析主机DNS 配置/解析服务
7无法连接(拒绝/不可达)端口未监听、防火墙 REJECT、路由
28操作超时防火墙 DROP、链路质量、服务无响应
35SSL 连接错误证书、协议版本、中间设备拦截
52服务端空回复后端崩溃、被 RST
56接收数据失败连接中途被中断

查看与脚本化

查看与脚本化
curl -sS -o /dev/null --connect-timeout 3 http://10.0.0.5:8080/; echo "rc=$?"
# 循环巡检:
for u in http://a/ http://b/; do
  curl -sS -o /dev/null -w '%{http_code} ' --max-time 5 $u; echo "rc=$? $u"
done
脚本里用 -sS:-s 静默进度条,-S 保留错误信息,两者同时使用最适合自动化排查。

易错点

  • 用了 -s 又不检查 $?,把失败当成功继续执行后续流程
  • 把 28 超时直接归因服务端慢:也可能是中间防火墙静默丢包

数据来源与参考

  • curl 手册:EXIT CODES 章节
  • curl 官方文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌