宝塔面板博客官方技术博客
宝塔拨测

TCP 端口通了,网站测速为什么还更慢?用宝塔拨测看 TCP 和网站测速的差距

用宝塔拨测(t.bt.cn)先跑了一次 TCP 测速,443 端口显示是通的,耗时也很低;可换「网站测速」再测同一个域名,结果却慢了好几倍。很多人会疑惑:端口都通了,网站测速为什么还更慢、甚至可能失败?

答案在于:TCP 拨测只测「三次握手」这一道工序,网站测速要跑一整个完整的 HTTPS 请求——多出来的 DNS 解析、TLS 握手、发送请求、等待服务器响应,每一步都要花时间、也都可能出错。下面用 2026-10-06 下午对 www.bt.cn 同时段的两次真实拨测(各 356/357 个节点成功、覆盖 59 个省份/地区)讲清楚这两者的差距。

同一目标,TCP 连接 50.3ms,网站测速 356.3ms

对同一个目标 www.bt.cn,分别用「TCP 测速」(端口 443)和「网站测速」(HTTPS)各跑一次,结果如下:

指标 TCP 拨测(www.bt.cn:443) 网站测速(https://www.bt.cn)
成功节点 356 / 357(成功率 99.7%) 356 / 357(成功率 99.7%)
总耗时中位数 50.3 毫秒 356.3 毫秒
p95 400.6 毫秒 1385.7 毫秒
官方平均 124.9 毫秒 467.8 毫秒
最快 / 最慢节点 0.7 / 4996.3 毫秒 59.1 / 6231.4 毫秒

同一个域名、同一批探测节点,TCP 拨测的连接耗时中位数只有 50.3 毫秒,网站测速的总耗时中位数却到了 356.3 毫秒——差了约 7 倍。原因不在网络变差了,而在「测的东西」不一样:TCP 拨测到三次握手完成就结束了,网站测速还要继续往下走完整条请求链路。

多出来的 300 毫秒花在哪:慢在「首字节」

把网站测速这 356.3 毫秒拆开看,各阶段的中位数是:

阶段 中位数耗时
DNS 解析 17.2 毫秒
TCP 连接 40.6 毫秒
TLS 握手 58.1 毫秒
首字节 356.2 毫秒
传输 0.1 毫秒

可以看到,网络握手三段(DNS 17.2 + TCP 40.6 + TLS 58.1)加起来约 116 毫秒,只占总耗时的零头;真正的「大头」是首字节 356.2 毫秒——也就是服务器收到请求后、处理并返回第一个字节所花的时间。

所以结论很直接:TCP 通了、握手也快,不代表网站就一定快。网站测速慢,多半是慢在服务器这一侧(首字节),而不是网络或端口。

唯一的失败节点,卡在 DNS 而不是 TCP

这次两个拨测的成功率完全一样(都是 356/357),唯一失败的节点也都是同一个「湖北-孝感-联通」。有意思的是它的失败原因:

  • 网站测速记的是 HTTP_DNS_TIMEOUT,错误信息是 lookup www.bt.cn: i/o timeout;
  • TCP 拨测记的是 TCP_TARGET_INVALID,错误信息同样是 lookup www.bt.cn … i/o timeout。

也就是说,这个节点是在解析域名这一步就超时了,压根还没轮到三次握手。这提醒了一点:填域名做 TCP 拨测时,检测节点也得先做 DNS 解析,节点自己的 DNS 超时同样会让 TCP 拨测失败——这跟你的服务器端口通不通没有关系。

怎么用这两个测速方式

排查时按「想验证什么」来选:

  • 只想确认端口通不通、到服务器的网络延迟:用「TCP 测速」。它只关心三次握手,结果干净、不受服务器业务逻辑影响。
  • 要确认网站能不能正常访问、整条链路通不通:用「网站测速」。它覆盖 DNS、TLS、HTTP 请求全流程,能暴露 TCP 层看不到的问题。

一句话总结:TCP 拨测通了,说明端口和网络这一环没问题;网站测速慢或失败,多半是后面的 TLS、服务器响应等环节出了问题。 别把「端口通」当成「网站通」。

(本文数据来自 2026-10-06 下午对 www.bt.cn 的真实拨测,只代表采集时刻的情况;节点池和线路是动态的,跨天复测数据不同属正常。)

常见问题

TCP 端口通了,网站就一定打得开吗?

不一定。TCP 拨测只验证到「三次握手」这一步,即检测节点能连上服务器的指定端口;网站测速还要继续完成 DNS 解析、TLS 握手、发送 HTTP 请求、等待服务器返回首字节等环节,任何一环出错都会失败。本次对 www.bt.cn 的两个拨测成功率虽然都是 356/357,但唯一的失败节点是同一个「湖北孝感联通」,失败原因都是 DNS 解析超时——它连 TCP 握手都还没开始。

为什么 TCP 拨测很快,网站测速却慢好几倍?

因为两者测的范围不同。TCP 拨测只测三次握手这一道工序,本次连接耗时中位数只有 50.3 毫秒;网站测速要跑完整 HTTPS 请求,总耗时中位数 356.3 毫秒,差了约 7 倍。多出来的时间花在 DNS 解析、TLS 握手、发送请求和等待服务器响应上。

网站测速慢,到底慢在哪一段?

把 356.3 毫秒的总耗时拆开看:DNS 解析 17.2 毫秒、TCP 连接 40.6 毫秒、TLS 握手 58.1 毫秒、首字节 356.2 毫秒、传输 0.1 毫秒。网络握手(DNS+TCP+TLS)加起来约 116 毫秒,只占小头;大头是「首字节」356.2 毫秒,也就是服务器处理请求并返回第一个字节的时间。慢在服务器响应,不是网络。

想确认服务器端口通不通,用哪种测速?

只看端口通不通、到服务器的网络延迟,用「TCP 测速」,它只关心三次握手;要确认网站能不能正常访问、整条链路通不通,用「网站测速」,它覆盖 DNS、TLS、HTTP 请求全流程。排查时要先分清自己想验证的是「端口」还是「完整网站访问」。

TCP 拨测和网站测速的失败原因一样吗?

不完全一样,但填域名时两者都要先做 DNS 解析。本次两个拨测里唯一失败的节点「湖北孝感联通」,TCP 拨测记的是「TCP_TARGET_INVALID」、网站测速记的是「HTTP_DNS_TIMEOUT」,但具体错误信息都是「lookup www.bt.cn i/o timeout」——即卡在 DNS 解析这一步。这说明即便只做 TCP 拨测,节点自己的 DNS 解析超时也会导致失败,跟端口通不通无关。

网站测速的 356.3 毫秒,能直接减去 TCP 拨测的 50.3 毫秒吗?

不能。这是两次独立运行的拨测,节点返回有波动。要对比应该看同一次「网站测速」内部的分段耗时(它自带 TCP 连接段),或看两次运行各自的中位数做大致对比。本文里网站测速内部拆出的 TCP 连接段是 40.6 毫秒,和单独 TCP 拨测的 50.3 毫秒是同一数量级、两次不同运行的结果。