本地能打开的网站,换个城市、换个运营商就打不开,这类问题最难复现。check-host.net 把同一项检查同时派给几十个国家的节点,几秒后把每个节点的结果摆在一张页面上,用来回答"是我这里的问题,还是站点的问题"。
它解决什么问题:你的网络不等于别人的网络
网站挂没挂,本地 ping 一下只能证明你这一条路。CDN 会把不同地区的访客解析到不同边缘节点,某些节点可能单独故障;跨境线路、运营商互联、机房防火墙,任何一段出问题,表现都是"我这边打不开"。
还有些故障只在特定协议上出现:本地 IPv4 正常、对方只发布 AAAA 记录,于是纯 IPv6 用户打不开;路径 MTU 不一致,小包能通、大包全丢;DNS 被本地运营商劫持,解析到一个不存在的地址。这些都不在"网站是否在线"的范畴里。
这类工具的价值在于把观测点从一台机器扩展到几十台。你不必租 VPS,也不用找朋友帮忙测试,输入域名后勾选地区即可。判断方向往往比精确数字更重要:先确认是局部还是全局,再决定去查 DNS、证书还是防火墙。它和站内介绍过的 WireGuard 隧道排查是互补关系:隧道通不通看握手与路由,对外的可达性则要看外部节点。
五种检查怎么选:ping、TCP、HTTP、DNS 与 UDP
| 类型 | 测什么 | 典型用途 |
|---|---|---|
| Ping | ICMP 回声,发 4 个包,给出每次的延迟与丢包 | 主机是否在线、跨地域延迟基线 |
| TCP | 能否与指定端口建立连接 | 数据库、SSH、自建服务的端口是否放行 |
| HTTP | 请求页面,返回状态码与耗时 | 网站是否可访问、是否被重定向 |
| DNS | 查询 A、AAAA 与 PTR 记录,带 TTL | 解析是否生效、各地是否一致 |
| UDP | 向指定端口发包,看是否有回应 | 游戏服、自建 DNS、语音服务 |
选择顺序通常是自上而下:先 ping 看通不通,再用 TCP 确认端口,最后用 HTTP 看应用层返回。DNS 单独查,用来判断是解析错了还是线路不通。
写目标时可以直接带协议和端口,例如 smtp://gmail.com、https://example.com 或 1.2.3.4:5432。带协议头的写法会让检查器按对应默认端口连接,省去自己填端口。
节点不必全选。全选会把等待时间拉长,排障时选五到十个有代表性的地区更实用:目标用户集中的国家、报障地区,再加一两个已知正常的基准节点,对比才有参照。
check-host.net 上手:一次检查的三步与结果读法

先填域名或 IP,也可以带上端口,比如 example.com:443。再选检查类型和节点数量,节点可以按国家挑选,也可以交给系统随机分配。最后点检查,等几秒看结果。
结果按节点分卡片展示,每张卡片有节点所在国家与城市、出口 IP 与 ASN、延迟,以及成功或失败的状态。同一个域名在不同节点解析出不同 IP,通常说明前面有 CDN 或分地域调度,这不算异常。结果页会持续刷新,还没回传的节点先显示为等待中,不必手动重试。
需要留档时用固定链接。每次提交都会生成一个形如 check-report/编号 的地址,可以发给同事复现;这个页面是公开的,别把带内部令牌的 URL 贴进去。
结果怎么读:0/4、301 与 Connection refused
Ping 显示 0/4,意思是 4 个 ICMP 包全部丢失。官方 FAQ 的解释是:主机可能真的下线,也可能是防火墙拦掉了 ICMP。所以 0/4 要配合 TCP 检查一起看,不能直接判定宕机。
HTTP 返回 301 并不代表失败,它表示资源已经搬到新地址,浏览器会跟到 Location 指向的位置,搜索引擎也会把权重转过去,细节可以看 MDN 对 301 的说明。真正要警惕的是 5xx、连接超时,或者不同节点一半 200 一半 404。
TCP 检查里,Connection timed out 一般说明包被丢弃或路径不通;Connection refused 说明主机可达但端口没有服务在监听。UDP 没有回应时官方显示为 Open or filtered,收到不可达回执才显示 Connection refused,这两句的差别决定了是"没开"还是"被挡"。
DNS 结果带 TTL。TTL 还有几百秒,说明旧记录仍在缓存里,刚改完解析就急着判定失败没有意义。等 TTL 走完再复查,或者换几个不同地区的节点对比。
结果出现分裂时,先看失败节点是否集中在同一个国家或同一个 ASN。集中,多半是那条链路或那个机房的问题;分散,则更可能是源站或证书本身。把成功节点的出口 IP 也记下来,能帮助判断是不是解析到了不同的边缘节点。
免费、账号与隐私边界
网页端不需要注册,也没有付费墙。API 同样可以直接调:GET check-host.net/check-ping?host=example.com&max_nodes=3,返回 request_id、固定链接与参与节点,再用 check-result/request_id 取结果。检查类型换成 http、tcp、dns、udp 即可,节点清单在 nodes/hosts 接口里。API 文档还给了按节点指定检查的写法,参数可以重复传多个 node。
截至 2026 年 11 月 5 日,这个接口返回 55 个节点。我在请求里把 max_nodes 设成 100,实际拿到的也是这 55 个,说明上限就是当前节点总数,而不是某个固定的小数字。
官方文档没有写明匿名调用的具体频率上限,只提供了上述参数。要在脚本里批量跑,建议在本地加延时与缓存,别把公开服务当压测目标。
隐私上有两点要注意:检查记录会生成可公开访问的固定链接;被检查的目标会看到来自这些节点的请求。内网地址、带签名的下载链接、后台登录页,都不适合拿来测。
适合排障,不适合当监控
适合的场景:刚做完 DNS 切换、CDN 配置、防火墙放行,需要确认外部是否已经生效;用户反馈某地区打不开,需要快速判断范围;自建服务的端口要从外网验证。
不适合的场景:持续可用性监控。它是单次检查,没有告警、没有历史曲线、没有重试策略,要做这些得用 Beszel 这类监控工具自己搭。
它也不能代替真实用户体验。节点都在机房,网络质量优于手机与家庭宽带;如果问题只在移动网络出现,机房节点的结果会看起来一切正常。
顺带一提,HTTP 检查只请求页面本身,不执行 JavaScript,也不会带上你的登录状态。用它判断"接口能不能通"可以,判断"页面渲染有没有问题"不行。涉及状态码与缓存行为的细节,站内HTTP 缓存那篇讲得更细。对运维来说,它更像一把一次性探针:出事时拿出来照一下,日常盯盘交给监控。
相关地址
以下为文中项目的官方入口,版本号、文档与下载以这些页面为准。
- check-host.net(官网):https://check-host.net/
- check-host.net(API 文档):https://check-host.net/about/api?lang=en
- check-host.net(节点列表):https://check-host.net/nodes/hosts
© 版权声明
文章版权归作者所有,转载需注明出处。未声明原创的皆为网络收集,如有侵权请邮箱lishiwenhuagx@sina.com联系下架处理。




