StepCodex FeaturedStepCodex Reviews
Notion Docs

选择测速节点:浏览器内用 HTTP 估算上下行;并可复制标准 iPerf3 命令在终端测试(网页无法直接跑 iPerf3 协议) 免费在线工具,无需登录、无需注册。

本地运行个人数据安全

Loading Tool Engine

使用说明与技术 FAQ

使用说明

  1. 打开工具后,下行/上行默认数据量为 50MB;「测速节点」默认会按当前公网 IP 自动选择(依次尝试 Cloudflare cdn-cgi/trace 与 1.1.1.1、geojs.io、ipapi.co 解析国家/大洲)。若您手动更改过节点下拉框,则不再被自动结果覆盖。
  2. 在分组「国内宽带」中选运营商/地区(电信、联通、移动、大陆通用、香港、中国台湾);「海外电信」选北美、欧洲、亚太及新加坡、日本等;「通用与细分」含 Cloudflare 默认、美/欧独立 httpbin、欧洲 OVH 专用等。
  3. 分别设置「下行数据量」「上行数据量」,范围 1~200MB。体积越大,速率曲线越平滑、越接近稳态,但耗时更长;上行若回退为整包 Blob,浏览器内存占用约与体积相当,大文件建议 Chrome / Edge 以尽量走流式上传。
  4. 点「测下行」:按当前节点配置的候选列表顺序尝试 HTTP GET。常见行为:对 speed.cloudflare.com/__down?bytes=N 精确拉取 N 字节;对 npmmirror 大 tgz、CacheFly 固定 .test、OVH .dat 等固定文件在达到目标量后提前结束读取(earlyStop);失败则换下一候选。
  5. 点「测上行」:对 Cloudflare 端点优先 fetch + ReadableStream 请求体(需 Chromium 系支持 duplex: half);失败则 fetch 发送整包 Blob,再失败用 XMLHttpRequest 并监听 upload.onprogress。选用 httpbin 的节点在体积 ≤ 约 12MB 时可直传 /post,否则或失败时自动改走 Cloudflare __up。
  6. 点「先下行后上行」将串行执行两次测试;第二次开始前会重置实时表盘峰值,便于分别观察上下行。测试进行中按钮与节点/数据量下拉会禁用,避免中途改参。
  7. 测速过程中查看实时网速:中央为大号瞬时 Mbps(按已传字节 ÷ 已用秒数 ×8/1e6 估算);半圆弧随 Mbps 相对满刻度变化;下方进度条为已传输/目标体积与百分比。满刻度会随峰值在 50~2000 Mbps 间抬升,避免略高网速时表盘顶满。
  8. 终端 iPerf3 复测:在「终端 iPerf3(参考)」区域复制 iperf3 -c <主机> -p <端口>。测下行(服务器→本机)在命令末尾加 -R;公网示例主机可能限流、关机或换端口(如 5201~5210),以现场连通为准。
  9. 对比实验建议:同一时段固定节点与数据量,分别在有线 / Wi‑Fi、关代理与开代理、不同浏览器下各跑 2~3 次取中位数;避免在系统后台大下载时测速。
  10. 若下行报短读或 CORS 错误:多为企业网/广告拦截屏蔽了 `cloudflare.com`、`httpbin.org`、`cachefly.net`、`proof.ovh.net`、`npmmirror.com` 等,可换网络、白名单域名或改选仅 Cloudflare 的节点。
  11. 若上行失败:可换 Chrome/Edge;检查是否被中间人设备限制大体积 POST;海外 httpbin 偶发 5xx 时会自动回退 Cloudflare,结果卡片上的「节点」文案会标明回退原因。
  12. 先阅读页面标题与简介,确认当前工具覆盖的场景与你的任务一致(避免用错工具导致理解偏差)。

相关技术知识

  • 总体架构:本工具为纯前端实现,测速流量为浏览器与第三方 HTTPS 端点直连,不经过本站业务 API;本站仅提供页面脚本与节点配置(源码 bandwidthIperfNodes.ts)。
  • 下行技术方案:使用 Fetch API 发起 GET,对 res.body 使用 ReadableStream.getReader() 循环 read(),累加 value.byteLength;总耗时为自发起请求至读完(或 earlyStop 取消)的墙钟时间。速率 Mbps = (总字节 × 8) / 秒 / 10⁶,MB/s = 总字节 / 秒 / 1024²。对固定大于目标体积的文件,在 received ≥ target×0.98 时 reader.cancel() 以节省流量。
  • 上行技术方案:对 https://speed.cloudflare.com/__up 发送 POST,Content-Type: application/octet-stream。优先 ReadableStream 分块产生可重复模式数据(256KB 块循环),满足半双工流式上传语义;回退链为 fetch(Blob) → XHR + Blob(便于进度与部分环境 CORS 兼容)。httpbin /post 在体积超阈值或失败时统一 fallback 到 Cloudflare。
  • 节点编排:每个节点维护 downloads[] 候选数组(label + resolve(bytes) URL 与是否 earlyStop)及 upload(cloudflare 或 httpbin)。国内多节点共享「npmmirror → Cloudflare → httpbin」栈以对比文案与 iPerf 说明;海外节点叠加 CacheFly、eu.httpbin、OVH proof 等以改变地理与 CDN 路径感知。
  • 与 iPerf3 的差异:iPerf3 使用自有 TCP/UDP 会话(常见端口 5201),可测瓶颈在栈底或 QoS;本工具为 TLS 之上的 HTTP/1.1 或 HTTP/2,受证书握手、ALPN、多路复用、浏览器调度、对端 HTTP 限速影响。二者数值不可直接等同为「运营商签约带宽」或「iPerf 报表带宽」。
  • HTTP/2 与多连接:浏览器对同一主机可能复用单连接多流;大文件下载仍表现为单连接上的流式吞吐,与多线程下载工具行为不同。
  • 默认节点(地理):bandwidthGeoDefaultNode.ts 将国家/大洲映射到预设节点 id(如 CN→大陆通用、TW→中国台湾、JP→日本节点等);解析失败则 cf-anycast。该逻辑仅影响默认选中项,并遵循最小化原则保障个人数据安全。
  • 精度与误差:首包 TTFB 计入总时间会使短测略低估稳态速率;建议 ≥10MB 起步、常用 50MB。CPU 软解、省电模式、标签页后台节流可导致异常偏低。
  • 隐私:测速结果在浏览器内安全处理;为默认节点会请求 Cloudflare trace / geojs / ipapi 等公网接口解析大致地区,遵循最小化原则保障个人数据安全,请阅各服务商隐私政策。
  • 安全:仅向硬编码的 HTTPS 域名发起请求;请勿在不可信环境修改本地脚本注入第三方 URL。
  • 可复现与工程排查:记录节点 id、数据量、浏览器 UA、是否代理、大致时段与错误文案;对运维场景可对比 MTR/traceroute 与 iperf3 同路径结果以区分 L3/L7 瓶颈。
  • 本类工具的核心解析与计算在浏览器端执行,默认不把原始业务载荷持久化到本站服务器(具体以页面隐私说明为准)。