首页/网络/协议速查/建连失败的三类现象
TCP 与 UDP54 条

建连失败的三类现象

connect 失败先分三类:超时(DROP/SYN 丢失)、拒绝(RST)、无路由;现象不同,排查路径完全不同。

协议速查网络更新于 2026-10-13

建连失败先分三类

客户端连不上时有三种典型现象,指向完全不同的排查方向:超时说明 SYN 没有得到任何回应,多半是报文被丢弃或路由缺失;拒绝说明收到了 RST,通常是端口没有监听或策略明确拒绝;无路由到主机说明失败发生在更下层,比如同网段内 ARP 解析不到或者本机路由表配置错误。先把现象归类,再按对应方向查,能省掉大量无用操作。

现象对照

现象网络层含义常见原因
Connection timed outSYN 无响应,报文被丢弃防火墙丢弃策略、云安全组未放行、路由缺失、服务过载丢弃 SYN
Connection refused收到 RST端口未监听、监听绑定了别的地址、防火墙拒绝策略
No route to host路由或邻居层失败网段不通、本机路由表错误、同网段 ARP 解析失败
Connection reset by peer建连后收到 RST对端进程崩溃、连接被重置、负载均衡后端异常重启
只能从某些来源连上来源相关策略生效安全组或白名单只放行了部分来源网段

快速验证

快速验证
nc -vz -w 3 10.0.0.9 8080                     # 一次判断是 refused 还是超时
telnet 10.0.0.9 8080                           # 交互式验证,看提示文字
curl -v telnet://10.0.0.9:8080 2>&1 | head      # 与 curl 的报错信息互相印证
ss -lntp | grep 8080                           # 在对端确认端口是否在监听以及绑定地址
ip route get 10.0.0.9                          # 看本机选择的路由与出口网卡

典型使用场景

  • 新服务上线后外部访问不通,先区分是被丢弃还是被拒绝
  • 同网段能通、跨网段超时,判断是否安全组只放了部分来源
  • 容器迁移后连不上,确认监听地址是否只绑定了回环接口
  • 发布重启期间出现成批失败,判断是否为后端尚未恢复监听
  • 排查间歇性建连失败,结合 backlog 队列与负载情况分析
云环境的排查顺序建议固定下来:本机监听、本机防火墙、安全组与网络 ACL、对端监听、对端防火墙,逐跳缩小范围。顺序固定后,任何一次新建连失败都能按同一套路走到结论。
监听地址的写法经常被忽略:绑定到 127.0.0.1 的服务只有本机能连,绑定到 0.0.0.0 才监听所有网卡。用 ss 或 netstat 看监听地址比反复改防火墙有效得多。

易错点

  • 把超时当被拒绝处理,反复检查服务进程与端口,实际报文在链路上就被安全组丢弃了
  • 只在本机 curl 通就认为服务正常,忽略了本机回环能连与外部能否连通是两回事
  • 监听只绑定了回环地址,外部访问全部超时或拒绝,却一直在排查网络设备
  • 半连接队列与全连接队列打满导致建连失败,现象与网络不通相似,需要看内核计数才能区分

数据来源与参考

  • RFC 9293 §3.5.2
  • man 8 nc

相关工具

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