登录

精华[技术] SpeedQuality 测速脚本首发,看看你的 VPS 在本省速度怎么样

319326
  • 编辑于

    最近折腾 VPS,经常遇到白天速度不错、晚上明显变慢的情况,就想做一个测速工具:选几个自己关心的地区,看看电信、联通、移动的单线程速度。于是就有了 SpeedQuality,简称 SQ。

    项目地址:SpeedQuality GitHub

    怎么使用?

    通过 SSH 登录你的 VPS,复制下面整条命令到终端执行即可:

    bash <(curl -fsSL https://sq.yolo2.cc/run)
    

    支持 Linux 的 amd64、arm64 架构。不传参数时,默认按 SSH 来源自动选择省份,使用 200Mbps 档位,测试服务器可用的 IPv4 和 IPv6。

    想先了解用法,可以在浏览器中打开SpeedQuality使用指南,查看常用参数并复制命令。测速完成后,终端会给出网页报告链接。

    先贴两份实测结果,分别展示独立 SQ 报告和关联 NQ 后的联合报告。

    实测一:独立SQ报告 [SQ]

    image

    实测二:SQ与NQ联合报告 [SQ*2+NQ]

    image

    它主要有下面这些特点:

    ①默认按 SSH 来源自动选择省份

    比如你在湖北,通过 SSH 登录一台日本 VPS,直接运行命令,就会测试这台 VPS 到湖北三网节点的速度。

    识别依据是 SSH 连接来源所在省份。经过跳板机时,通常识别到的是跳板机,可以用-p指定实际想测的地区。

    识别失败会退出,并提示先用-l查看省份代码,再通过-p指定。需要手动选择菜单时,加-i即可。

    ②单线程测速,提供三个速度档位

    支持 100、200、400Mbps,默认 200Mbps,用于观察单条 TCP 连接在所选档位下的表现。

    档位也是本次测试的限速上限,方便控制流量消耗。例如,结果显示200Mbps ✓,表示达到本次选择的 200Mbps 档位,不能据此判断线路的未限速峰值。

    ③默认检测 IPv4 和 IPv6,支持多个省份

    自动测试服务器可用的 IPv4、IPv6,也可以用-v4或-v6单独测试。

    单次最多选择 5 个省份。bsg是北京、上海、广东的快捷写法,也能组合成hb,bsg,测试湖北加北上广。

    省份支持代码和中文,中英文逗号都可以,例如hb,bj或湖北,北京。

    ④显示重传率,观察实际 TCP 传输表现

    重传率统计本次上传测速期间,TCP 重传字节占总发送字节(含重传)的比例,其中包括丢包、数据乱序、确认信息丢失或返回过慢等情况引起的重传。

    结合延迟、重传率和上传下载速度,可以更直观地观察本次连接的传输表现。

    ⑤显示实际测速节点,方便对比结果

    终端和网页报告会显示实际使用的节点名称及来源,例如武汉联通1号(IPv4) · 第三方。

    节点按城市、运营商和 IP 类型分别固定编号,IPv4 与 IPv6 独立编号。对比不同时段的结果时,可以先确认完整节点名称是否一致,了解两次是否测到了同一个测速端点。

    ⑥终端直接看结果,测完生成分享报告

    终端会显示进度、彩色测速表格和流量消耗,完成后返回网页报告链接。

    报告支持手机查看,也支持复制文本、NodeSeek、烧饼、IDCFlare 和通用 Markdown 格式,方便发帖分享。

    NodeSeek 和烧饼格式使用紧凑排版,较长的关联校验说明会主动分行。

    把报告链接粘贴到 Telegram 等支持链接预览的平台,还可以展示测速摘要图片。

    ⑦可以关联已有 NodeQuality 报告

    如果你已经跑过 NQ,在测速命令后加上--nq 你的NQ报告链接即可。

    SQ 会校验报告中的身份信息和检测时间。关联成功后,保留 NQ 原有分页,并在最后追加 “速度质量” 页,用一个链接就能查看两份结果。

    建议跑完 NQ 后尽快运行 SQ。两次检测相差超过 60 分钟时,身份匹配仍可关联,但报告会提示时间差;身份无法匹配或无法确认时,会保留 SQ 测速结果,并提示未关联原因。

    这项关联功能由 SQ 提供,不代表与 NodeQuality 存在官方合作关系。

    ⑧可以关联一次历史 SQ,对照早晚速度

    在测速命令后加上--sq 你的历史SQ报告链接,就能把本次测速与一份历史结果放在同一个报告链接中。

    比如白天先跑一次,晚上再带上白天的报告链接运行,测完即可在 “速度质量” 页中切换查看两次结果。每次测速的日期、地区、档位和节点信息都会保留。

    目前支持关联 1 份历史 SQ,加上本次共 2 份;已经包含两份 SQ 的报告不能继续叠加。建议两次使用相同的地区、档位和 IP 类型,方便比较。

    关联前会检查历史报告和出口身份。早期缺少身份校验信息的报告无法关联,可以先用新版生成一份报告,之后再做对比。

    历史 SQ 关联的 NQ 也会参与校验。如果同时传入新的--nq,会从身份匹配的候选中,选择检测时间最接近本次测速的一份 NQ。

    常用命令

    下面的命令按需选择,复制到 VPS 终端执行即可。关联命令中的报告链接请替换为自己的实际链接。

    湖北,100Mbps:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p hb -s 100
    

    湖北和北京,默认 200Mbps:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p hb,bj
    

    北上广,只测 IPv4:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p bsg -v4
    

    湖北,只测 IPv6:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p hb -v6
    

    使用中文省份:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p '湖北,北京'
    

    关联已有 NodeQuality 报告:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p hb --nq 你的NQ报告链接
    

    关联一次历史 SQ,对照不同时段的结果:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p hb --sq 你的历史SQ报告链接
    

    同时关联历史 SQ 和 NQ 报告:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -p hb --sq 你的历史SQ报告链接 --nq 你的NQ报告链接
    

    打开手动选择菜单:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -i
    

    查看省份代码:

    bash <(curl -fsSL https://sq.yolo2.cc/run) -l
    

    查看完整帮助:

    bash <(curl -fsSL https://sq.yolo2.cc/run) --help
    

    简单说一下测速原理

    运行命令的服务器直接连接测速节点,上传和下载分别通过单条 TCP 连接进行 HTTP 数据传输,以实际传输量和耗时计算速率;延迟取 TCP 建连样本。

    每个方向开始传输后,先预热约 2 秒,再进行 5 秒正式测速。

    表格里的方向是:

    • 上传:当前服务器→测速节点。
    • 下载:测速节点→当前服务器。

    结果会受到线路、时段和节点状态影响,适合在不同时间重复对比。没有可用节点或节点繁忙而跳过时显示-,某个方向未取得有效速率时显示 “失败”,其他已测出的有效结果仍会保留。

    测速会消耗流量,开始前会给出估算。以默认 200Mbps 为例,单省三网、IPv4+IPv6 全部测试的最高参考消耗约 2.10GB,实际取决于速度和可用节点。流量有限可以选择-s 100 -v4。

    普通测速使用临时下载的测速程序。同一次运行中的全部省份、运营商和 IPv4/IPv6 测试共用一次程序下载,结束后清理临时文件。

    可以查看节点地图,也支持自建测速节点

    可以在SpeedQuality节点地图查看各地区、运营商及 IPv4/IPv6 的近期覆盖情况和节点列表。

    地图中的可用覆盖依据归属核验及近 7 天成功测速记录,包含第三方节点和公开共享的自建节点。

    项目提供 sq-node 自建节点服务。完成平台注册和校验后会获得 Route Key,可以在待测 VPS 上指定这个 Key,测试它与自建节点之间的速度:

    bash <(curl -fsSL https://sq.yolo2.cc/run) --node sqn_YOUR_ROUTE_KEY -s 100
    

    将sqn_YOUR_ROUTE_KEY替换为自己节点的 Route Key 即可。

    节点可以公开共享,也可以设置为仅持有 Route Key 的用户可用,并可设置总带宽、单任务最高档位和流量额度。

    目前也支持自建教育网节点,通过 Route Key 定向测速;公共教育网测速暂未开放。

    自建节点功能还在继续完善,支持范围、部署与管理说明见自建节点文档。

    相关通信流程与测速方式参考了MiaM1ku/taierspeedtest,感谢原作者的公开研究,已在 README 中注明。

    源码、完整文档与问题反馈:SpeedQuality GitHub

    目前处于公开测试阶段,欢迎试用。如果觉得好用,欢迎 Star 支持。遇到测速失败、地区识别或报告展示问题,可以在本帖回复,也可以提交 Issue,附上运行参数、报错和报告链接。

    收藏 2支持 1反对打赏

26 条回复

发表回复