Skip to content

sshpc/local-speed-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Local SpeedTest

一个基于 Go 的局域网测速工具。单文件运行,无需安装,手机扫码即可测速。

功能特性

  • 单文件部署 — 编译后仅一个可执行文件,无外部依赖
  • 自动打开浏览器 — 启动后自动跳转测速页面
  • 手机扫码测速 — 自动生成局域网 IP 二维码,手机扫码直接访问
  • 完整测速流程 — 延迟 / 下载 / 上传 三阶段顺序测试,实时仪表盘动画
  • 随时停止 — 测试过程中可点击按钮立即停止
  • 深色/浅色主题 — 一键切换,偏好自动保存
  • 本机智能识别 — 本机 127.0.0.1 访问时自动隐藏测速功能,仅展示二维码供手机扫码
  • 跨平台 — 支持 Windows / macOS / Linux
  • 响应式 UI — 适配手机和桌面浏览器

快速开始

方式一:直接运行

Releases 页面下载对应平台的可执行文件,双击运行即可。

方式二:源码编译

git clone https://github.com/sshpc/local-speed-test.git
cd local-speed-test
go build -o speedtest-go .
./speedtest-go

运行效果

  SpeedTest Server
  LAN:    http://192.168.1.100:12900
  Local:  http://127.0.0.1:12900

浏览器自动打开 http://127.0.0.1:12900,显示系统信息和二维码。

使用方式

  1. 在电脑上运行 speedtest-go
  2. 用手机扫描页面上的二维码(确保手机与电脑在同一 WiFi 网络)
  3. 手机浏览器打开后点击 开始测速
  4. 等待延迟 → 下载 → 上传 三阶段测试完成
  5. 查看测速结果和历史记录

测试原理

阶段 说明 并发数 持续时间
延迟 8 次 HTTP Ping,取最优 4 次平均值 1 ~0.3s
下载 6 路并发 fetch 流式读取随机数据 6 8s
上传 6 路并发 fetch POST 上传 512KB 数据块 6 8s
  • 下载测试使用 ReadableStream 逐块读取,实时计算速率
  • 上传测试每次发送 512KB ArrayBuffer,服务端完整接收后响应
  • 所有测试支持 AbortController 立即中断

API 端点

端点 方法 说明
/ GET 测速页面(HTML)
/api/info GET 系统信息(主机名、OS、IP、CPU)
/api/qr GET QR 码 PNG 图片(?url= 参数)
/api/ping GET 延迟测量
/api/download GET 下载数据流
/api/upload POST 上传数据接收

技术栈

  • 后端:Go net/http 标准库,github.com/skip2/go-qrcode 生成二维码
  • 前端:原生 HTML/CSS/JS,无框架依赖,SVG 仪表盘动画
  • 测速fetch API + ReadableStream + AbortController

项目结构

local-speed-test/
├── main.go          # 服务端 + 前端(HTML 内嵌)
├── go.mod           # Go 模块定义
├── go.sum           # 依赖校验
├── LICENSE          # MIT License
└── README.md

交叉编译

# Windows
GOOS=windows GOARCH=amd64 go build -o speedtest-go.exe .

# macOS
GOOS=darwin GOARCH=arm64 go build -o speedtest-go-mac .

# Linux
GOOS=linux GOARCH=amd64 go build -o speedtest-go-linux .

浏览器兼容性

  • Chrome 52+
  • Firefox 65+
  • Safari 10.1+
  • Edge 79+

License

MIT

About

局域网测速

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages