OpenSpeedTest 是一个免费且开源的 HTML5 网络性能评估工具,使用原生 JavaScript 编写,只使用内置的 Web API,如 XMLHttpRequest(XHR)、HTML、CSS、JS 和 SVG,不需要第三方框架或库,只需要一个静态 Web 服务器如 NGINX。
OpenSpeedTest 目标是安全、轻量级和高性能,不包含任何客户端软件或插件,可以在任何支持 IE10 或更新版本的 Web 浏览器上运行。
OpenSpeedTest 只包含静态文件,如 HTML、CSS 和 JS,不需要担心安全更新或隐藏漏洞可能危及安全环境。
使用原生 JavaScript 编写,OpenSpeedTest 的脚本文件大小压缩后不到 8KB。
OpenSpeedTest 可以在任何支持 IE10 或更新版本的 Web 浏览器上运行,适用于任何设备和显示尺寸。
你可以创建自己的 SpeedTest 服务器,服务器要求包括 Nginx、Apache、IIS、Express 或任何支持 HTTP/1.1 或更新版本的 Web 服务器,服务器需要接受 GET、POST、HEAD 和 OPTIONS 请求,返回 200 OK 响应。
通过传递 Stress 或 S 关键字作为 URL 参数,可以启用压力测试。例如,http://192.168.1.5?Stress=Low
将运行 300 秒的压力测试。
可以通过在 URL 中添加 Run 或 R 关键字来自动运行速度测试。例如,http://192.168.1.5?Run=10
将在页面加载后 10 秒自动运行测试。
可以在配置文件中添加多个服务器,应用程序会自动选择延迟最小的服务器。
• 禁用或更改开销补偿因子。
• 更改默认的并行 HTTP 连接数。
• 选择不同的服务器进行测试。
• 选择并运行下载、上传或 Ping 测试。
• 动态设置 Ping 超时时间。
• 设置 Ping 样本数量。
OpenSpeedTest 支持自托管(本地部署)和 Docker 镜像。可以使用源代码和选择的 Web 服务器进行自定义部署,或者使用 Docker 镜像进行快速部署。
安装 Docker 后,可以运行以下命令来部署 OpenSpeedTest:
sudo docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest
需要公网 IP 地址、解析到服务器 IP 地址的域名和电子邮件地址,可以使用以下命令生成 Let's Encrypt 证书并配置自动续期:
docker run -e ENABLE_LETSENCRYPT=True -e DOMAIN_NAME=speedtest.yourdomain.com -e USER_EMAIL=you@yourdomain.pro --restart=unless-stopped --name openspeedtest -d -p 80:3000 -p 443:3001 openspeedtest/latest
需要提供证书文件和密钥文件,可以将这些文件挂载到 Docker 容器中:
sudo docker run -v /path/to/certificates:/etc/ssl/ --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest
OpenSpeedTest 是一个简单高效的网络性能测试工具,适用于家庭实验室、办公室服务器或云服务器,可以用于比较不同互联网服务提供商的速度,诊断网络问题。