「超时」这两个字,在浏览器里能对应至少三种完全不同的故障。

最常见的是两种:连接超时和请求超时。名字像,位置差得很远。

两个阶段

连接超时发生在 TCP 三次握手:客户端发了 SYN,一直没收到回应。这时候连 HTTP 都还没开始,服务器根本不知道你要访问什么。

请求超时是另一回事:连接建好了,请求也发出去了,就是等不到响应。

一个卡在门口,一个进去了没人理。

连接超时的三种原因

网络不通。 路由丢包、云厂商的安全组、运营商的策略,都会让 SYN 石沉大海。

端口没开。 服务只监听 80,你访问 443;或者安全组只放行了部分端口。

被 DROP 而不是 REJECT。 防火墙丢包,客户端就只能等,等到超时。如果是 REJECT,会立刻收到拒绝,那是另一篇文章的事了。

怎么验证

用 TCP 测速在多节点各跑一次。全部节点超时,问题在服务端或目标网络;只有部分节点超时,是线路问题,跟服务器配置无关。

机器上再确认一遍:telnet 目标IP 443 或者 nc -vz 目标IP 443。本地通、外地不通,方向就明确了。

别忽略 IPv6

有些环境 IPv4 正常、IPv6 不通,或者反过来。浏览器会自动尝试,表现就是「有时能开有时不能开」。测的时候指定 IPv4 或 IPv6 各测一次,能确认是不是这个原因。

处理顺序

先确认服务在监听(ss -lntp),再确认安全组和本机防火墙放行,最后才怀疑线路。

顺序反了,就会在「是不是运营商问题」上耗掉一晚上,而真实原因只是安全组少开了一个端口。

想先看各地到底通不通,用 网站测速 的全节点模式,哪一个地区、哪一家运营商超时,一目了然。