ping 通了端口不一定通:用宝塔拨测把 PING 和 TCP 分开测
主机 ping 得通,不代表端口能连上。用宝塔拨测(t.bt.cn)对同一个目标分别跑一次 PING 测速和 TCP 测速,就能看到「主机连通性」和「端口连通性」是两回事:PING 测的是主机通不通,TCP 测的是指定端口能不能建立连接,这两层互不影响。
下面用对 www.qq.com 的三次真实拨测(PING、TCP 443 端口、TCP 22 端口,2026-10-05 北京时间)演示,同一台主机怎么得出三种不同的结论。
PING 和 TCP,分工各是什么
宝塔官方文档(进行一次拨测并查看结果)对五种检测方式的分工写得很清楚,其中两条是:
| 要确认的问题 | 选择 | 关注点 |
|---|---|---|
| 主机是否可达、往返时延如何 | PING 测速 | 丢包和往返时延 |
| 指定端口能否连接 | TCP 测速 | 指定端口的连通情况 |
关键就在这个区别:PING 走的是 ICMP,主机内核直接回一个响应,不经过任何服务进程;TCP 测的是「能不能和某个端口建立连接」,需要这个端口上有服务在监听、而且防火墙放行了这个端口。所以一台主机可以做到「内核响应 PING,但某个端口上没有服务、或端口被防火墙拦掉」——于是「ping 通」和「端口通」就分开了。
实测一:PING,98.6% 成功
先对 www.qq.com 跑一次 PING 测速,结果如下:
| 指标 | 本次实测值 |
|---|---|
| 目标 | www.qq.com(PING 测速) |
| 节点 | 354 成功 / 359 选中(成功率 98.6%) |
| 覆盖地区 | 59 个(大陆 31 个 + 港澳台及海外 28 个) |
| 平均 RTT(中位数) | 19.2 毫秒 |
| 平均 RTT(最快 / 最慢) | 0.3 / 378.5 毫秒 |
| 丢包分布 | 0% 丢包 349 节点;25% 丢包 4 节点;75% 丢包 1 节点 |
| 抖动(中位数) | 0.2 毫秒 |
354 个节点成功、349 个节点零丢包,说明 www.qq.com 这台主机在全国绝大多数地方都能被 ping 到,主机本身是活着的。
实测二:TCP 443 端口,99.7% 成功
再对 www.qq.com:443 跑一次 TCP 测速,测的是 HTTPS 端口能不能连:
| 指标 | 本次实测值 |
|---|---|
| 目标 | www.qq.com:443(TCP 测速) |
| 节点 | 358 成功 / 359 选中(成功率 99.7%) |
| 覆盖地区 | 59 个(大陆 31 个 + 港澳台及海外 28 个) |
| 连接耗时(中位数) | 30.6 毫秒 |
| 连接耗时(p95 / 最快 / 最慢) | 99.8 / 0.9 / 1259.1 毫秒 |
443 端口 358 个节点成功、成功率 99.7%,和 PING 的结论一致——主机通,HTTPS 端口也通,网站对外服务正常。
实测三:TCP 22 端口,只有 1.7% 成功
最后对 www.qq.com:22 跑一次 TCP 测速,测的是 SSH 端口:
| 指标 | 本次实测值 |
|---|---|
| 目标 | www.qq.com:22(TCP 测速) |
| 节点 | 6 成功 / 359 选中(成功率 1.7%) |
| 成功节点来源 | 海外 4 个 + 港澳台 2 个 |
| 失败节点 | 353 个 |
同样的主机,换成 22 端口,结果立刻翻转:359 个选中节点里只有 6 个成功(成功率 1.7%),而且这 6 个全部来自海外和港澳台,大陆节点一个都没连上。失败节点的原因集中在 TCP_CONNECT_FAILED,主要为:i/o timeout 177 个、network is unreachable 151 个、connection refused 9 个、cannot assign requested address 12 个、no route to host 2 个。
三个结论同时成立,因为它们测的不是同一层
把三次结果放到一起看:
| 拨测方式 | 测什么 | 本次结论 |
|---|---|---|
| PING www.qq.com | 主机连通性 | 98.6% 成功,主机活着 |
| TCP www.qq.com:443 | HTTPS 端口 | 99.7% 成功,端口开放 |
| TCP www.qq.com:22 | SSH 端口 | 1.7% 成功,端口基本不通 |
同一个 www.qq.com,同时给出「主机通」「443 通」「22 不通」三种结论,并不矛盾——因为三次拨测测的是三个不同的层。主机 ping 得通只说明内核响应了 ICMP;22 端口不通说明 SSH 服务没有对公网开放、或被防火墙拦掉了,这和主机是否活着是两码事。
怎么用这两个拨测定位问题
遇到「服务连不上」,先用 PING 和 TCP 分开测,把问题定位到哪一层:
- PING 大量失败:主机本身失联,或服务器主动禁了 Ping(屏蔽 ICMP)。先查主机是否在线、是否禁 Ping。
- PING 通、TCP 端口不通:主机活着,是端口上的服务没起、或防火墙拦了这个端口。去目标服务器看服务监听状态和防火墙规则。
- PING 通、TCP 端口也通:主机和端口都没问题,问题在更上层,比如服务内部报错、DNS 解析错误,继续用网站测速或 DNS 测速排查。
宝塔官方文档也给了同样的提示:TCP 端口不通时,「结合目标服务器的监听和防火墙设置排查」。
本文数据采集于 2026-10-05(北京时间),来自宝塔拨测的匿名公开接口,只代表采集时刻的情况;拨测节点池和线路是动态的,跨天复测同一目标得到不同数字属正常现象。
常见问题
ping 通了为什么端口还是连不上?
因为 ping 和端口连接测的不是同一层。ping 走 ICMP,测的是主机内核能不能响应;端口连接走 TCP,需要端口上有服务在监听、且防火墙放行了这个端口。两者可以独立开关,所以「主机 ping 得通」不等于「某个端口能连上」。本文实测 www.qq.com:PING 98.6% 成功、22 端口只有 1.7% 成功,就是主机通但 SSH 端口不通的典型。
PING 拨测和 TCP 拨测分别测什么?
PING 测速回答「主机是否可达、往返时延如何」,关注丢包和往返时延;TCP 测速回答「指定端口能否连接」,关注指定端口的连通情况。宝塔官方文档把两者的分工写得很清楚:查主机通不通用 PING,查端口通不通用 TCP。
怎么用 PING 和 TCP 分清是主机失联还是服务没起来?
对同一目标分别跑一次 PING 和一次 TCP 端口拨测。PING 大量失败说明主机本身失联或被禁 Ping;PING 通但 TCP 端口不通,说明主机活着、是端口上的服务没起或防火墙拦了这个端口,问题出在服务或端口层而不是主机层。
为什么同一个网站 443 端口通、22 端口不通?
因为 443 是 HTTPS 默认端口,网站对外提供 HTTPS 服务就必须开放;22 是 SSH 端口,很多服务器出于安全会把 SSH 从公网关闭、只允许内网或特定来源访问。本文实测 www.qq.com:443 端口 99.7% 成功,22 端口只有 6 个海外/港澳台节点成功、大陆节点全部失败。
TCP 拨测失败原因里 connection refused 和 i/o timeout 有什么区别?
connection refused 表示目标端口明确拒绝了连接,常见于端口没有服务监听或防火墙主动拒绝;i/o timeout 表示连接请求发出去后在时限内没收到任何响应,常见于防火墙丢弃了连接请求。两者都指向「端口从外部连不上」,需要结合目标服务器的监听和防火墙设置排查。
PING 拨测的「平均 RTT」和 TCP 拨测的「连接耗时」是一回事吗?
不是。PING 的平均 RTT 是一个 ICMP 包发出去再收回来的往返时延,主机内核直接回,不含业务处理;TCP 的连接耗时是完成 TCP 连接建立所花的时间。两者都反映网络往返,但测的对象不同。本文实测 www.qq.com:PING 平均 RTT 中位数 19.2 毫秒,TCP 443 连接耗时中位数 30.6 毫秒。