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

网站拨测失败别急着判断网站挂了,先看失败原因:DNS 解析超时、连接超时、网络不可达

对网站做一次拨测,结果里冒出几个失败节点,是不是就能断定「网站挂了」?不能。失败节点只是少数,而且每个失败节点都带一个失败原因(error code)——DNS 解析超时、连接超时、网络不可达……这些原因大多指向节点所在的网络,而不是网站本身。

下面用对 www.bt.cn 的一次真实网站测速,拆开看失败原因到底有哪几种、分别该怎么读。

先看结果:4 个失败节点,报出 3 种失败原因

本次对 www.bt.cn 的网站测速(2026-10-03,北京时间),请求 500 个节点、选中 359 个、成功 355 个、失败 4 个(成功率 98.9%),覆盖 59 个省份/地区,其中大陆 31 个、港澳台及海外 28 个。355 个成功节点全部返回 HTTP 200,且证书剩余天数都是 144 天——网站本身完全正常。

失败的 4 个节点,按失败 code 分成 3 类:

失败 code 节点数 含义
HTTP_DNS_TIMEOUT 2 域名解析超时
HTTP_TIMEOUT 1 连接/响应超时
HTTP_NETWORK_UNREACHABLE 1 网络不可达

也就是说,同样是「失败」,这 4 个节点的失败原因其实是**域名解析超时(2 个)、连接超时(1 个)、网络不可达(1 个)**三种,没有一种是「服务器拒绝响应」或「网站宕机」。

三种失败原因,分别指向什么问题

HTTP_DNS_TIMEOUT:域名解析这一步就卡住了

2 个节点报 HTTP_DNS_TIMEOUT,底层错误文案是 lookup www.bt.cn: i/o timeout(如河北-唐山-电信节点)。它的意思是:检测节点在解析域名这一步就超时了,连目标的 IP 都还没拿到。

这类失败发生在最前面——解析都过不去,后面的连接自然无从谈起。它通常指向节点本地 DNS 服务器慢、不稳定或暂时超时,而不是目标网站的问题。

HTTP_TIMEOUT:请求发出去了,但没在超时时间内完成

1 个节点报 HTTP_TIMEOUT(广东-汕头-移动节点),底层错误文案是 context deadline exceeded——意思是请求已经发出去了,但在超时时间到达前没拿到完整响应。它既可能发生在连接阶段,也可能发生在等待响应的阶段。和「网站挂了」不同,这类失败往往是节点到目标之间的链路慢或抖动导致,而不是目标服务器没有响应。

HTTP_NETWORK_UNREACHABLE:节点到目标没有可达路由

1 个节点报 HTTP_NETWORK_UNREACHABLE(江西-九江-移动节点),底层错误文案是 dial tcp6 [2409:8c34:5200:200:abcd::37]:443: connect: network is unreachable。它表示:这个节点尝试走 IPv6(dial tcp6)去连接目标,但所在网络到该 IPv6 地址没有可达路由,连接请求发不出去。

这是典型的节点网络侧问题——节点所在网络没有可用的 IPv6 路由。www.bt.cn 同时有 IPv6 地址,当节点网络不支持 IPv6 到目标时,就会报网络不可达。它和网站是否在线没有关系。

怎么读自己的网站拨测失败原因

  1. 先看整体成功情况:绝大多数节点返回 200、只有零星节点失败,优先怀疑节点网络侧,而不是网站。
  2. 再看失败原因分布:把失败节点的 error code 归类,看是 DNS 解析超时、连接超时还是网络不可达,各自指向不同阶段的问题。
  3. 最后结合地区运营商看:失败节点集中在哪些地区、运营商,可以判断是某些网络环境的共性问题,还是目标服务器的个别异常。

关于网站测速的发起方式、结果里各项含义,可参阅官方文档《进行一次拨测并查看结果》。本文讲的是节点「失败」(连不上目标)的情况;如果你关心的是节点「成功但状态码非 200」(如 404、403、500),可参阅《网站返回 404、403、500 状态码是什么问题?用宝塔拨测看各节点的 HTTP 状态码》。同一个主题下,PING 测速和 TCP 测速的失败原因解读,可分别参阅《ping 域名失败别急着判断,先看失败原因:解析到被封锁地址、无响应、节点无权限》和《TCP 拨测失败别急着判断端口不通,先看失败原因:网络不可达、节点无权限、超时》。

信息来源

本文事实以宝塔官方文档《进行一次拨测并查看结果》为准;文中拨测数据为对 www.bt.cn 的真实网站测速结果,采集于 2026-10-03(北京时间),失败原因分布与节点数均来自本次拨测结果数据,拨测结果会随时间和网络状况变化,以上数值仅代表采集时刻的情况。

常见问题

网站拨测结果里有节点失败,是不是说明网站挂了?

不一定。个别节点失败不等于网站挂了,要结合成功节点和失败原因一起看。如果绝大多数节点都正常返回 200,只有极少数节点失败,且失败原因是 DNS 解析超时、连接超时或网络不可达这类节点网络侧的问题,那网站本身通常是正常的。

HTTP_DNS_TIMEOUT 和 HTTP_TIMEOUT 有什么区别?

HTTP_DNS_TIMEOUT 是域名解析这一步就卡住了(lookup i/o timeout),连目标 IP 都还没拿到;HTTP_TIMEOUT 是解析成功后、发出的请求没在超时时间内完成(context deadline exceeded)。一个是解析阶段的问题,一个是连接或响应阶段的问题。

HTTP_NETWORK_UNREACHABLE 是什么原因?

它表示检测节点所在的网络到目标之间没有可达路由,连接请求发不出去。本次实测里这个节点是尝试走 IPv6 连接(dial tcp6)时报网络不可达,属于节点网络侧没有可用的 IPv6 路由,不是网站本身的问题。

同一个网站,为什么不同节点报的失败原因不一样?

因为各节点所在的网络环境不同。有的节点本地 DNS 解析慢或超时、有的节点到目标没有 IPv6 路由、有的节点发出的请求迟迟收不到回应,所以同一目标在不同节点会报出不同的失败原因。单个节点的失败原因不能代表全局。

怎么用失败原因定位问题?

先看失败原因的分布,找占比最高的那一类;再结合成功节点和失败节点分别落在哪些地区、运营商,判断是网站本身的问题还是节点网络的问题。绝大多数节点正常、只有零星节点失败时,通常优先怀疑节点网络侧。

节点失败和状态码非 200 是一回事吗?

不是。「失败」指节点没连上目标或超时,连响应都没拿到;「状态码非 200」(如 404、403、500)指节点连上了服务器、也拿到了响应,只是返回的不是 200。两者是不同的维度,排查时不要混为一谈。