局域网搭建类speedtest测速网站 librespeed

2024-07-21 14:07:13 5点赞 21收藏 3评论

LibreSpeed 是一个用于测量网络速度的工具,它的特点是简洁、易用,特别是在局域网环境中,用来测试网络设备带宽是否达标非常好用。你可以把它看作speedtest的开源简化版本。

一、docker部署

1.1 默认部署

此方式为官方文档中使用的单机模式standalone,有一个致命缺点:测速结束后网页下方的客户端ip显示的是容器的虚拟ip地址而不是真实的物理机ip

docker run -e MODE=standalone -p 8080:80 -it ghcr.io/librespeed/speedtest

1.2 桥接模式部署

为了解决上述问题,必须启用桥接模式–net=host,同时为避免80端口和宿主机冲突,修改默认网页端口80。

如果想修改测速网页标题,可以加上title的变量。

sudo docker run -e MODE=standalone -e WEBPORT=8999 -e restart=always --net=host ghcr.io/librespeed/speedtest

  • MODE=standalone 独立部署模式,

  • WEBPORT=8999 修改默认网页访问端口为8999

  • restart=always 设置容器随宿主机启动

  • –net=host 使用桥接模式,这样是为了测速后显示客户端ip为真实地址

    详细参数如下

`TITLE` :速度测试的标题。 默认值: `LibreSpeed` `TELEMETRY` :是否启用遥测。 默认值: `false` `ENABLE_ID_OBFUSCATION` :在启用遥测的情况下设置为 true 时,将对测试 ID 进行模糊处理,以避免公开数据库内部顺序 ID。 默认值: `false` `REDACT_IP_ADDRESSES` :在启用遥测的情况下设置为 true 时,将从收集的遥测数据中编辑 IP 地址和主机名,以获得更好的隐私。 默认值: `false` `PASSWORD` :访问统计信息页面的密码。如果未设置,统计信息页面将不允许访问。 `EMAIL` :GDPR 请求的电子邮件地址。启用遥测时必须指定。 `IPINFO_APIKEY` :ipinfo.io 的 API 密钥。可选,但如果您希望提供大量测试,则是必需的 `DISABLE_IPINFO` :如果设置为 true,则不会从 ipinfo.io 获取 ISP 信息和距离。 默认值:值: `false` `DISTANCE` :设置为 false 时 `DISABLE_IPINFO` ,指定如何测量与服务器的距离。可以是 `km` 公里、 `mi` 英里或空字符串,以禁用距离测量。 默认值: `km` `WEBPORT` :允许为包含的 Web 服务器选择自定义端口。 默认值: `80`

测速界面测速界面

二、高级模式

高级模式为机翻,本人没有测试。请尽量看官方文档。

在librespeed的官方文档中,还提供了多点测试模式。这时需要1个以上的后端模式服务器backend和1个前端服务器frontend。

2.1 后端模式backend

在后端模式下,LibreSpeed 仅提供一个没有 UI 的测试点。为此,请将 MODE 环境变量设置为 backend

部署后可以在端口 80 上访问以下后端文件: garbage.phpempty.phpgetIP.php

2.2 前端模式frontend

在前端模式下,LibreSpeed 为客户提供 Web UI 和服务器列表。为此,请执行以下操作:

  • 设置 MODE 环境变量 为frontend

  • 创建一个包含测试点的servers.json文件。语法如下:

    [ { "name": "Friendly name for Server 1", "server" :"//server1.mydomain.com/", "dlURL" :"garbage.php", "ulURL" :"empty.php", "pingURL" :"empty.php", "getIpURL" :"getIP.php" }, { "name": "Friendly name for Server 2", "server" :"https://server2.mydomain.com/", "dlURL" :"garbage.php", "ulURL" :"empty.php", "pingURL" :"empty.php", "getIpURL" :"getIP.php" }, ...more servers... ]

  • 注意:如果服务器仅支持HTTP或HTTPS,请在服务器字段中指定协议。如果它同时支持两者,只需使用 // .

  • 容器中的/servers.json要装载到宿主机(此文件末尾的示例)

可以在端口 80 上访问该测试。

下面是此模式下可用的其他环境变量的列表:

  • TITLE :速度测试的标题。默认值: LibreSpeed

  • TELEMETRY :是否启用遥测。默认值: false

  • ENABLE_ID_OBFUSCATION :在启用遥测的情况下设置为 true 时,将对测试 ID 进行模糊处理,以避免公开数据库内部顺序 ID。默认值: false

  • REDACT_IP_ADDRESSES :在启用遥测的情况下设置为 true 时,将从收集的遥测数据中编辑 IP 地址和主机名,以获得更好的隐私。默认值: false

  • PASSWORD :访问统计信息页面的密码。如果未设置,统计信息页面将不允许访问。

  • EMAIL :GDPR 请求的电子邮件地址。启用遥测时必须指定。

  • DISABLE_IPINFO :如果设置为 true,则不会从 ipinfo.io 获取 ISP 信息和距离。默认值:值: false

  • DISTANCE :设置为 false 时 DISABLE_IPINFO ,指定如何测量与服务器的距离。可以是 km 公里、 mi 英里或空字符串,以禁用距离测量。默认值: km

  • WEBPORT :允许为包含的 Web 服务器选择自定义端口。默认值: 80

2.3 双模

在此模式下,LibreSpeed 既可以作为独立服务器运行,也可以连接到其他测试点。为此,请执行以下操作:

  • 设置 MODE 环境变量 为 dual

  • 按照 servers.json 前端模式的说明进行操作

  • The first server entry should be the local server, using the server endpoint address that a client can access.(第一个服务器条目应为本地服务器,使用客户端可以访问的服务器终结点地址。)

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
3评论

  • 精彩
  • 最新
  • 那测试一次要耗多少流量哦?

    校验提示文案

    提交
    估计几百兆是有的

    校验提示文案

    提交
    收起所有回复
  • 学习了,mark一下

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

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