为什么我把本地 ping 换成了宝塔拨测
书签栏里那个在线 ping 工具,我用了很多年。输入域名,回车,看延迟。快、直接、不用登录。
后来不用了。不是它不好用,是它能回答的问题太少。
一次典型的误判
去年有个成都用户反馈网站打不开。我在广州 ping 了一下,20 毫秒,0 丢包。回复「我这边正常,你换个网络试试」。
用户没再回复。一周后另一个成都用户也来反馈,我才意识到不对。
用多节点一测,全国大部分节点 30 毫秒以内,成都和周边几个节点全部超时。问题根本不在用户那边,是西南方向的一条链路出了故障。我那句「我这边正常」,等于把问题推给了用户。
本地 ping 最大的问题不是不准,是它只有一个观测点。你站在广州,看到的永远是广州。
第二个坑:ICMP 会被限速
有次排查一台服务器,本地 ping 丢包 15%,我以为网络有问题,查了半天机房。
后来用 TCPing 打 443,一次没丢过。是机房对 ICMP 做了限速,业务流量完全正常。
ping 走 ICMP,很多云厂商和机房默认限速甚至直接丢弃。它显示的红,很多时候不是故障,是策略。
换过去之后怎么用
现在我的顺序固定成三步。
先用多节点 ping 看分布。全国节点都正常,问题大概率在用户侧;只有某个地区异常,查链路;全部超时,查解析和出口。
再用 TCPing 看端口。Ping 通但端口不通,是服务没起来或防火墙拦截;Ping 不通但端口通,是 ICMP 被限速。
最后用 网站测速 看应用层。状态码、首字节、下载耗时,能区分是网络慢还是后端慢。
三步走完,大部分问题十分钟内能定性。以前靠猜,现在靠对照。
本地 ping 还留着
说清楚,本地 ping 没有被淘汰。
服务刚部署,想确认机器活没活,本地一条命令最快。
怀疑自己网络有问题,本地测试最直接。
它的问题是结论的适用范围:只能代表你这一条线路。用它做自查可以,用它回复用户不行。
换的不是工具,是视角
宝塔拨测 给我的不是更漂亮的图表,是几十个观测点。
同样一个「网站打不开」,以前我只能说「我这边没问题」,现在能说「全国几十个节点里,西南 6 个超时,其余正常,问题在成都到机房这段链路」。
前者是感受,后者是可执行的信息。
本地命令还在用,只是不再拿来下结论了。