网站连接超时是什么原因?和请求超时差在哪
「超时」这两个字,在浏览器里能对应至少三种完全不同的故障。
最常见的是两种:连接超时和请求超时。名字像,位置差得很远。
两个阶段
连接超时发生在 TCP 三次握手:客户端发了 SYN,一直没收到回应。这时候连 HTTP 都还没开始,服务器根本不知道你要访问什么。
请求超时是另一回事:连接建好了,请求也发出去了,就是等不到响应。
一个卡在门口,一个进去了没人理。
连接超时的三种原因
网络不通。 路由丢包、云厂商的安全组、运营商的策略,都会让 SYN 石沉大海。
端口没开。 服务只监听 80,你访问 443;或者安全组只放行了部分端口。
被 DROP 而不是 REJECT。 防火墙丢包,客户端就只能等,等到超时。如果是 REJECT,会立刻收到拒绝,那是另一篇文章的事了。
怎么验证
用 TCP 测速在多节点各跑一次。全部节点超时,问题在服务端或目标网络;只有部分节点超时,是线路问题,跟服务器配置无关。
机器上再确认一遍:telnet 目标IP 443 或者 nc -vz 目标IP 443。本地通、外地不通,方向就明确了。
别忽略 IPv6
有些环境 IPv4 正常、IPv6 不通,或者反过来。浏览器会自动尝试,表现就是「有时能开有时不能开」。测的时候指定 IPv4 或 IPv6 各测一次,能确认是不是这个原因。
处理顺序
先确认服务在监听(ss -lntp),再确认安全组和本机防火墙放行,最后才怀疑线路。
顺序反了,就会在「是不是运营商问题」上耗掉一晚上,而真实原因只是安全组少开了一个端口。
想先看各地到底通不通,用 网站测速 的全节点模式,哪一个地区、哪一家运营商超时,一目了然。