先看现象。外网访问站点一直转圈,ping 服务器地址完全正常,用端口检测工具一会儿提示拒绝,一会儿提示超时,两个结果指向的方向完全不同。

排查方向其实有限,先把可能性排一排。提示拒绝说明包到了主机,只是没有进程监听或者被规则显式拒绝。另一种情况是提示超时多半是包在中间被丢弃,安全组和本机防火墙都可能是原因。

少数情况下是只测 ping 无法反映端口状态,它走的是另一套协议。

动手时先在本机确认端口有没有监听

ss -lntp | grep 443

从外部带超时探测端口

nc -zv -w 3 服务器IP 443

然后在本机抓包看请求是否到达

tcpdump -i any port 443 -nn -c 20

末了核对两侧防火墙规则

iptables -S | grep 443

恢复的判定其实很直接。外部探测返回成功,抓包能看到完整的握手过程,浏览器访问不再超时。

这里还有个坑。拒绝和超时是两条完全不同的排查路径,先分清再动手;只测 ping 通不通就下结论是最常见的误判。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189