## 症状现象
ping 对端服务器有回应,说明 IP 层链路是通的,但网站打不开、数据库连不上、接口超时。这是一个高频误会场景:不少人把 ping 当成"通"的判据,其实 ping 只验证 ICMP 报文的往返,业务跑在 TCP 或 UDP 端口上,两者是不同的通道。ICMP 通而端口不通,问题藏在"有没有人监听、防火墙放没放、链路中间拦没拦"这几层里。
## 分层定位:本机监听
第一层查目标机上有没有进程在听这个端口。登目标机执行:
bash ss -tlnp | grep -w 80
有输出且监听地址是 0.0.0.0 或公网地址,监听这关过了;监听在 127.0.0.1 则只有本机能连,改配置让它对外监听。没有输出说明服务根本没起来或起错了端口,先修服务再谈连通。
## 分层定位:防火墙与策略
第二层是两道防火墙。云服务器先看平台侧:顺云控制台防火墙规则是否放行了该端口与协议,方向要对,源地址限制是否把自己排除在外。再看系统内 firewalld 或 iptables 是否放行,两者是串联关系,任何一道没开都连不上。第三层是对端策略:高防、负载均衡、安全组白名单这类前置层,源 IP 不在白名单里时表现也是端口不通。本机快速自测用 telnet 加目标与端口,或更顺手的 nc -zv 目标 端口,返回 succeeded 就说明从当前位置过去是通的。
## 分层定位:中间链路
以上都正常仍不通,用 traceroute 带端口探测路径:
bash traceroute -T -p 443 目标地址
默认 ICMP 探测有时被中途屏蔽,加 T 模拟 TCP 端口探测更贴近真实路径。看输出在哪一跳开始无回应,那一跳前后通常是问题点:跨运营商互联点、运营商策略、目标侧丢弃。中间链路问题多数只能绕行或联系链路方,但至少结论清楚了,不是你的机器坏。
**收尾。**排查结论要落到证据:每一层的检查输出留存,改了哪条规则记下来。端口类问题按"监听、系统防火墙、平台防火墙、前置策略、中间链路"的固定顺序走,十分钟内基本都能收口。