Files

6.3 KiB
Raw Permalink Blame History

Wpyw 网速测速(命令行版)

针对中国大陆宽带(联通 / 电信 / 移动)优化的零依赖命令行测速工具。 纯 Python 标准库实现,不需要 pip install 任何东西,双击 测速.cmd 就能跑。

 ╭──────────────────────────────────────────────────────────────────────╮
 │ Wpyw 网速测速 · 命令行版 v1.0                                        │
 │ 联通 / 电信 / 移动宽带 · 多线程测速 · 节点实测优选                    │
 ╰──────────────────────────────────────────────────────────────────────╯

  开始时间    2026-09-17 20:22:13
  测试模式    快速    下载 5s / 8 连接    上传 4s
  本机地址    192.168.0.103
  公网地址    2408:8214:...                            中国 山东 青岛
  运营商      联通                                     中国 山东 青岛  联通
  默认网关    192.168.0.1

── ① 延迟 / 抖动 / 丢包 ────────────────────────────────────────────────
  默认网关               1.7 ms  ▎  抖动 0.5 ms
  阿里云 DNS            4.7 ms  ▎  抖动 2.0 ms
  国际出口             184.3 ms  ████████████████  国际线路,仅供参考
  测速节点 TCP           9.4 ms  到测速节点的纯网络往返(最优值)

  国内平均延迟  4.7 ms     抖动 2.0 ms     丢包 0.0%     ★★★★★ 极佳

── ② 下载速度 ──────────────────────────────────────────────────────────
  节点  腾讯云镜像(深圳)   8 连接 · 5.0s · 共 231 MB
  实测  374.40 Mbit/s   =  46.8 MB/s   峰值 637.03 Mbit/s

── ③ 上传速度 ──────────────────────────────────────────────────────────
  节点  China Unicom 5G(Shanghai)   4 连接 · 4.0s · 共 40 MB
  实测  74.64 Mbit/s   =  9.3 MB/s   峰值 167.04 Mbit/s

── ④ 结论 ──────────────────────────────────────────────────────────────
  下载 374.40 Mbit/s  (≈300M 档)    上传 74.64 Mbit/s  (≈50M 档)
  综合评级  A

用法

命令 说明
双击 测速.cmd 标准测速(约 25–40 秒)
python wpyw-speedtest.py --quick 快速测速(约 15 秒)
python wpyw-speedtest.py --full 完整测速(约 60 秒,更接近峰值)
python wpyw-speedtest.py --conns 16 --duration 12 千兆宽带建议加大并发与时长
python wpyw-speedtest.py --json result.json 结果同时写入 JSON(--json - 输出到标准输出)
python wpyw-speedtest.py --no-upload 只测下行与延迟
python wpyw-speedtest.py --ascii --no-color 老终端 / 日志重定向场景

全部参数见 python wpyw-speedtest.py --help。

目录里另附一份真实运行记录:示例输出.txt(终端报告原文)与 示例结果.json(机器可读结果)。 那次跑在山东青岛联通家用宽带上:下行 330 Mbit/s、上行 135 Mbit/s、国内平均延迟 10.5 ms、评级 A+、耗时 36 秒。

为什么要「节点实测优选」

同一台机器、同一条联通线路,不同节点的实测差距可以是几十倍:

下载节点 实测(8 连接) 说明
腾讯云镜像(深圳) 445 Mbit/s 联通出口友好,工具默认首选
华为云镜像(贵州) 350 Mbit/s 备用
上海交大镜像 34 Mbit/s 教育网互联一般
阿里云镜像(杭州) 5 Mbit/s 该线路与阿里云互联极差

所以工具不写死节点:先对候选节点各做一次短测(默认 2.5 秒), 实测够快就立刻停止试测并进入正式测试;下载节点与上传节点都是运行时选出来的。 结果里会明确写出本次用的是哪个节点,避免「换个节点数字就变」却不知道原因。

测量方法(以及为什么这样测)

  • 下载:多线程(默认 8 连接)HTTP 循环拉取大文件,跳过前 1.2 秒慢启动, 取稳态均值;同时给出峰值与逐秒曲线(曲线能直观看到限速/抖动)。
  • 上传:每轮发送固定大小请求并正常收尾(不是「发一半掐断」)。 早期版本用掐断式测量会把内核缓冲区的数据也算进去,数字虚高(实测虚高近一倍), 而且会在测速节点留下半开连接,拖慢后续测量。
  • 延迟:调用系统 ping 并发测试多个国内目标,抖动 = 相邻样本差的均值。 国际出口单独列出、不计入国内均值 —— 否则 8.8.8.8 的丢包会把你整条线的评分带沟里。
  • 节点发现:上传节点从 speedtest.net 服务器列表里筛中国境内节点,联通节点优先, 失败则回退 Cloudflare。

判读建议

  • 上行明显低于下行是正常的:家用宽带普遍不对称(例如 500M/50M)。 工具会按实测值给出档位估算,只做保守取整。
  • 公共测速节点会限速排队:上行波动大时工具会明确提示「结果偏保守」。 要更准就 --full,或换时段复测。
  • 延迟高但测速快:通常是 WiFi 或路由器 QoS 造成的 bufferbloat, 看「默认网关」那一行 —— 网关延迟就几十毫秒的话,问题在局域网侧,不在运营商。
  • 丢包:国内目标出现丢包才值得排查(网线/水晶头/路由器负载); 国际出口丢包在晚高峰属常见现象。

环境要求

  • Windows + Python 3.8 及以上(不需要任何第三方库;本机 Python 3.13 实测通过)。
  • 无需管理员权限(网关、DNS 都是从 route print / ipconfig 解析的)。
  • 需要能访问国内镜像站(腾讯云/华为云等)与 speedtest.net(仅用于发现上传节点,失败会自动回退)。