当前位置:
文章详情

最好用的内外网测速工具 speedtest 服务器搭建指南

2018-05-29 23:05:01 201点赞 1542收藏 268评论


目录
一. speedtest 简介.
二. 安装到 Windows. 难度 ★★
三. 安装到 Linux. 难度 ★★★★★
四. 安装到 群晖 DSM. 难度 ★
五. 使用 Docker 镜像部署. 难度 ★★★
六. 总结


一. speedtest 简介.

1. 作者简介.

喝井不忘挖水人, speedtest 的作者不是排骨, 是下面这位.

speedtest 是由意大利的一位90后爱打游戏爱跳舞机的逗B码农 Federico Dossena (见下图) 发布的一个开源项目

最好用的内外网测速工具 speedtest 服务器搭建指南


2. 原理简介

speedtest 以 HTML 和 JavaScript 为主, 利用客户端的浏览器通过上传和下载垃圾数据来测试 HTTP 传输速度, 和大家常用的 speedtest.net 差不多.

speedtest 使用任意操作系统上的任意 Web 服务器作为服务端, 所以理论上它支持 Windows/MacOS/Linux/Unix 等系统, IIS/Nginx/Apache/lighttpd 等服务器.

任意浏览器作为客户端如 Chrome/Firefox/IE11/Edge/Safari/Opera?

speedtest 默认使用 PHP 作为服务端, 目前也有 node.js 版本, 也可以只用纯静态服务器.

本文所说的 speedtestOokla 公司的 speedtest.net相关测速 app 没有任何关系, 没何关, 没关, .


二. 安装到 Windows. 难度 ★★

在 Windows 上安装 speedtest 应该是绝大多数普通用户, 为了照顾没有相关经验的用户, 这里排骨写的步骤较多较细, 但是已经最大化的精简了.

本文以 Windows 10 为例, Windows 7 也适用, 不过某些地方有不同, 排骨会注明.

1. 安装 IIS 服务器.

使用 Win+R 打开运行窗口, 输入 OptionalFeatures 打开 Windows 功能.

最好用的内外网测速工具 speedtest 服务器搭建指南

最好用的内外网测速工具 speedtest 服务器搭建指南

必须选择 IIS 管理控制台/静态内容/默认文档/CGI 4个选项. 默认文档不是必需的.

2. 下载并安装 PHP Manager for IIS.

PHP Manager for IIS 是微软官方推荐的一个 IIS 插件, 可以最大化的简化 IIS 上配置 PHP 的过程. 如果不用这个插件, 在 Windows 上配置 PHP 会比 Linux 上更麻烦.

下载地址: 链接: 密码: h7a1

最好用的内外网测速工具 speedtest 服务器搭建指南

Win7 系统安装 PHPManagerForIIS-1.2.0

Win10 系统安装 PHPManagerForIIS_V1.5.0, 这里排骨以 Win10 为例.

最好用的内外网测速工具 speedtest 服务器搭建指南

最好用的内外网测速工具 speedtest 服务器搭建指南

如果出现 SmartScreen 提示, 请按上面的图继续.

最好用的内外网测速工具 speedtest 服务器搭建指南

最好用的内外网测速工具 speedtest 服务器搭建指南

最好用的内外网测速工具 speedtest 服务器搭建指南

安装过程就是一路 Next.

3. 下载 PHP 包并解压

x64版下载
x86版下载

将下载好的 zip 包解压到任意路径, 如 F:php

最好用的内外网测速工具 speedtest 服务器搭建指南


4. 为 IIS 配置 PHP.

最好用的内外网测速工具 speedtest 服务器搭建指南

使用 inetmgr 命令扫开 IIS 管理器.

最好用的内外网测速工具 speedtest 服务器搭建指南

打开 PHP Manager.

最好用的内外网测速工具 speedtest 服务器搭建指南

通过 "Register new PHP version" 设置 PHP 引用路径.

最好用的内外网测速工具 speedtest 服务器搭建指南

上一次我们把 PHP 的文件解压到了 F:php.

最好用的内外网测速工具 speedtest 服务器搭建指南

最好用的内外网测速工具 speedtest 服务器搭建指南

使用 Check phpinfo() 测试 PHP 配置是否成功.

最好用的内外网测速工具 speedtest 服务器搭建指南

如果看到这个紫色页面, 就说明 PHP 配置成功了.

5. 下载 speedtest 包并解压.

speedtest 包下载:

解压到 C:inetpubwwwroot, 熟悉 IIS 配置的用户可以解压到其它地方.

注意所有文件都在压缩包里的子目录中!

最好用的内外网测速工具 speedtest 服务器搭建指南

6. 测试 speedtest.

用浏览器 (推荐 Chrome) 访问http://localhost/example-pretty.html . 如果出现下图这样的测试结果则表达 speedtest 运行成功.

最好用的内外网测速工具 speedtest 服务器搭建指南

7. 防火墙开启入站 80 端口.

这一步是可选的. 如果内网的其它电脑或手机无法访问这台 Windows 上的 speedtest, 可能是被 Windows 防火墙挡了.

将 Windows 入站端口 80 打开后, 内网的其它设备才能访问刚刚安装好的 speedtest.

以管理员身份运行 cmd 打开命令行窗口. 使用下面的命令行给防火墙开启 80 端口.

netsh advfirewall firewall add rule name="speedtest" dir=in action=allow protocol=TCP localport=80

最好用的内外网测速工具 speedtest 服务器搭建指南

Win7命令为

netsh firewall add portopening TCP 80 "speedtest"

最后用手机或其它电脑访问 链接开始测速吧 (假设安装 speedtest 的电脑 IP 为 192.168.1.91).

最好用的内外网测速工具 speedtest 服务器搭建指南


三. 安装到 Linux. 难度 ★★★★★

一般用户家中没有 Linux 电脑, 不过排骨考虑到使用 OMV 等系统作 NAS 的用户和自购有 VPS 的用户, 顺便也写一下 Linux 上安装 speedtest的步骤. 用 Linux 系统的用户基础都不会太菜吧?

下面 ubuntu 18.04 为例, 其它 Linux 版本的用户请自行调整.

1. 安装 nginx 和 php-fpm

sudo apt install nginx php-fpm

2. 修改 nginx 站点配置

sudo nano /etc/nginx/sites-available/default

以下面为修改配置文件内容, 注意 /var/run/php/php7.2-fpm.sock 的路径是不是正确.

server {
listen 80 default_server;
root /var/www/html;
index index.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

重启 nginx.

sudo service nginx restart

3. 下载 speedtest 并解压

speedtest 包下载

sudo wget https://github.com/adolfintel/speedtest/archive/4.5.5.zip

解压到 /var/www/html.

sudo unzip 4.5.5.zip -d /var/www/html/
sudo mv /var/www/html/speedtest-4.5.5/* /var/www/html/

4. 防火墙开启入站 80 端口

这步也是可选的.

sudo ufw allow 80

安装配置完成. 开始测速吧!


四. 安装到 群晖 DSM. 难度 ★★

在群晖系统上安装 speedtest 是个非常好的选择, 也是最简单的方案. 与 Linux 上安装 speedtest 类似, 群晖的管理系统本身就是基于 Linux 和 nginx 的.

1. 下载 speedtest 并上传到群晖.

speedtest 包下载

将 speedtest 包中的文件上传到群晖共享文件夹的某个目录, 如下图

最好用的内外网测速工具 speedtest 服务器搭建指南

2. 安装 Web Station 和 PHP 7.0.

从群晖套件中心可以找到, PHP 7.0 可能在安装 Photo Station 时一并安装好了.

最好用的内外网测速工具 speedtest 服务器搭建指南

3. 设置 PHP 和 虚拟主机.

打开 Web Station 套件, 选择 PHP 设置, 编辑默认PHP配件文件. 勾选 openssl.

最好用的内外网测速工具 speedtest 服务器搭建指南

最好用的内外网测速工具 speedtest 服务器搭建指南

选择 虚拟主机, 点击 新增, 然后按下图配置虚拟主机. 其中 端口文档根目录 按实际情况设置.

最好用的内外网测速工具 speedtest 服务器搭建指南

安装配置完成. 开始测速吧!


五. 使用 Docker 镜像部署. 难度 ★★★

用 Docker 部署 speedtest 是最简易快速的方法, 但是对用户来说起点也是最高的.

排骨专门给 speedtest 制作了 Docker 镜像 (6MB), 比原作者的镜像 (158MB) 小很多很多很多.

1. 下载 speedtest 镜像.

docker pull cuteribs/speedtest

2. 创建 speedtest 容器.

docker run -d --name speedtest -p 80:80 cuteribs/speedtest

安装配置完成. 开始测速吧! 2行命令就搞定了, 是不是简单得要死而绝大多数人又不会?


六. 总结

按上面任一方法搭建好 speedtest 服务器后, 就可以愉快的测速了.

不论是测内网还是外网
不论是测 路由器, AP, 网卡还是VPS
不论是测 有线 NAT, 2.4G/5G WiFi 等软件转发

只要打开浏览器, 输入 speedtest 地址就行了.

speedtest 测速的优点:

1. 测试简单暴力. 浏览器就能测, 无需别装 app.
2. 界面简洁明了. 直观且无广告不收费.
3. 上行下行兼顾. 不用双向测试, 不像 iperf3 只能单向.

speedtest 测速的缺点:

1. 用户技能要求. 需要自己安装测速服务器, 希望本贴能解决这个问题.
2. 测速协议片面. 基于 HTTP 协议测速, 有些片面. 不过95%的用户有90%的网络使用都是 HTTP. (纯瞎说的 哈~)
3. 性能瓶颈要求. 因为基于 Web 服务器和 JavaScript, 所以服务器和客户端性能不能太差. 测试 2.5/5/10 千兆可能力不从心.


关于 speedtest 的话题排骨就先说到这里吧. 大家愉快的测速去吧~


最好用的内外网测速工具 speedtest 服务器搭建指南


展开 收起
268评论

  • 精彩
  • 最新
  • Linux难度是零好吧,Apache 的配置文件都是现成的,不需要虚拟主机的情况下放到/var/www/html目录即可。防火墙不需要手动开放,Ubuntu 和 Debian 不需要,CentOS需要。

    校验提示文案

    提交
    这个难度是计算过用户基数以后得出的好吗?

    校验提示文案

    提交
    收起所有回复
  • 如此折腾一番,只是测个网速 [皱眉]

    校验提示文案

    提交
    孰不见那些为了开个灯, 开个窗帘的同学们... [邪恶]

    校验提示文案

    提交
    LNMP WNMP一键安装岂不美哉 [高兴]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 文章想要表达什么东西?

    校验提示文案

    提交
    还是推荐 office 之类的贴子比较适合你吧.

    校验提示文案

    提交
    收起所有回复
  • 我觉得作者主要是来晒网速的 [得意]

    校验提示文案

    提交
    晒网速?? 你肯定没好好看贴子 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 内网这么快,能测出准确的速度吗

    校验提示文案

    提交
    我一般用来测试 WIFI实际速度和 路由器 NAT速度. 准不准要看你对精度的要求.

    校验提示文案

    提交
    收起所有回复
  • 最近一直在测速 [喜极而泣] 相同价格电信新用户300m,老用户200m。一直在找页面升级套餐无果,每次就是测一遍网速就结束了 [黑线]

    校验提示文案

    提交
    可以要求电信提速,不给提到新用户套餐速度就去工信部投诉

    校验提示文案

    提交
    收起所有回复
  • 不知道是不是bug,我用speedtest测速可以突破1000mbps [惊喜] ,测了很多次就是1070左右 [尴尬]

    校验提示文案

    提交
    正常,测http跑分是

    校验提示文案

    提交
    收起所有回复
  • iperf3 有双向的参数啊

    校验提示文案

    提交
    请开始你的表演

    校验提示文案

    提交
    iperf -c [serverip] 可选参数 -R
    带不带R就决定了两个方向
    不明白为啥还要整个花里胡哨的网页 [黑线]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 其实windows 上如果你要用php,还有一个更加简单的选择,WAMP套件,一键安装 Apache2, PHP , MySQL,然后傻瓜话配置

    校验提示文案

    提交
    杀鸡用牛刀? [邪恶]

    校验提示文案

    提交
    主要是这个比较方便,一次性搞定所有,包括IIS安装,php配置

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 这个和路由端的speedtest 插件是一个东西吗?

    校验提示文案

    提交
    不是,这个是需要自己建服务端的

    校验提示文案

    提交
    收起所有回复
  • docker版直接访问403了

    校验提示文案

    提交
    啊不好意思没注意本来就没有index.html

    校验提示文案

    提交
    你可以选择一个 example-* 改成 index

    校验提示文案

    提交
    收起所有回复
  • 按文中步骤来,实际是先第2步,再走第1步,但卡在测试那一步了,win7专业版。什么原因?

    校验提示文案

    提交
    卡在那一步是指什么?

    校验提示文案

    提交
    能发图就好了,命令进控制台,下面有个测试按钮,点进去显示无法找到网页 [不高兴]

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 既然目的一致,为何不用 speedtest.net 的 speedtest-cli ...

    校验提示文案

    提交
    我已经搭了自己的ookla server.
    你用 speedtest-cli 测个内网速度我看看? [得逞]

    校验提示文案

    提交
    收起所有回复
  • 这个是测试内网?还是,自己专门建了个服务器,看别人的速度?

    校验提示文案

    提交
    both! 都可以测! [doge]

    校验提示文案

    提交
    收起所有回复
  • 就测个速,还搞这么复杂,确实时间够多

    校验提示文案

    提交
    感谢支持, 字数补丁

    校验提示文案

    提交
    收起所有回复
  • 测试 PHP 配置是否成功的时候 弹出来 网站无法显示该页面 怎么处理

    校验提示文案

    提交
    那就是配置 哪里不对. 仔细检查一下

    校验提示文案

    提交
    收起所有回复
  • 本人esxi装软路由顺便搞了个黑群,有公网ip,其它端口外网穿透没问题,电信已封80端口,可否外网连内网群晖测速?

    校验提示文案

    提交
    端口映射成 8080或其它非80的端口.

    校验提示文案

    提交
    收起所有回复
  • 我怎么觉得iis下挂php很简单呢?isapi,cgi都有说明,按照文档做就行了。

    校验提示文案

    提交
    明显用php manager简单得多. 特别是对第一次配php的人来说

    校验提示文案

    提交
    收起所有回复
  • 有办法安装到路由器系统,例如梅林里面吗?

    校验提示文案

    提交
    路由器的性能堪忧.... [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 奇怪了,我的群晖“打开 Web Station 套件, 选择 PHP 设置, 编辑默认PHP配件文件. ”后,就没有openssl等“扩展名”选项,下部分都是光秃秃的。前几天升到DSM6.2的,但是应该与这个无关吧。

    校验提示文案

    提交
    你安装了 PHP 7.0套件吗

    校验提示文案

    提交
    肯定有啊,可惜不能截图,真的没有下面那一堆可以打钩的选项呐。

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1.5K
扫一下,分享更方便,购买更轻松