通过搭建内网测速网站,可以方便地测试客户端与服务器之间的网络质量。极限情况下,每一台服务器都可以安装一个测速服务端,这样当客户端出现卡慢时可以随时测试客户端到对应服务器的网络质量。
测速网站效果如下:

测速服务有两种实现,一种是 PHP 版本,需要安装 apache 和 php,另一种实现是 go 语言版,不需要安装 apache 和其它中间件。
项目地址:
# php 版https://github.com/librespeed/speedtest# golang 版https://github.com/librespeed/speedtest-go
考虑到部署的方便因素,下面介绍 golang 版本的测速服务。在 release 页面有预编译好的可执行文件,但 测试时发现预编译的 Windows 版本执行时不太正常,于是考虑自己编译。
Windows 版本的服务端编译过程:
C:\> go install golang.org/dl/go1.17.1@latestC:\> go1.17.1 downloadC:\> go1.17.1 versiongit clone https://github.com/librespeed/speedtest-go.gitcd speedtest-goC:\> go1.17.1 build -ldflags "-w -s" -trimpath -o speedtest.exe main.go

修改源代码中的配置文件 settings.homl
bind_address="0.0.0.0"listen_port=80proxyprotocol_port=0server_lat=0server_lng=0ipinfo_api_key=""assets_path="./web/assets"statistics_password="PASSWORD"redact_ip_addresses=falsedatabase_type="none"database_hostname="localhost"database_name="speedtest"database_username="postgres"database_password=""database_file="speedtest.db"enable_tls=falseenable_http2=false
其中 assets_path 即 html、js 所在目录,运行时只需要 assets 目录和 speetest.exe 可执行文件以及 settings.homl 配置文件。当前演示环境是在源代码目录,在当前目录执行 speetest.exe 即可启动服务:

在 Windows 上编译 Linux 下的可执行文件:
C:\> set CGO_ENABLED=0C:\> set GOOS=linuxC:\> set GOARCH=amd64C:\> go1.17.1 build -ldflags "-w -s" -trimpath -o speedtest_linux_64bit main.go
将编译好的可执行文件、配置文件和 assets 目录拷贝至 Linux 上执行:
scp -r speedtest_linux_64bit settings.toml web/ root@192.168.1.1:/opt/speedtest/# login linux server$ cd /opt/speedtest/$ chmod +x speedtest_linux_64bit$ ./speedtest_linux_64bit
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




