想要验证 VPS 到国内三网的真实带宽,最稳妥的方式是在 VPS 内部使用命令行工具发起测试;如果你是想搭建一个网页供他人测试,则需要部署 LibreSpeed 等服务。本文重点讲解如何搭建可供他人测试的节点,并辅以 CLI 工具进行自我验证。
先说结论:自行验证带宽推荐直接用 speedtest-cli,搭建共享测速页则选 LibreSpeed。
- 适合:需要量化 VPS outbound 速度或提供 inbound 测试服务的场景
- 先准备:确保 VPS 有 sudo 权限、Docker 环境且能访问外网
- 验收:命令行输出 Mbps 数值正常,网页能公开访问并跑满带宽
步骤一:VPS 自身带宽自测(CLI 版)
在搭建节点前,建议先确认 VPS 本身的出站带宽是否符合预期。以下命令适用于大多数 Debian/Ubuntu 系统,用于安装官方命令行工具:
curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash安装完成后,首次运行需接受许可协议,注意参数不要加反引号:
sudo speedtest `--accept-license`若要测试特定运营商线路,先查找服务器 ID:
speedtest `--list`在输出列表中,观察服务器名称,通常包含“Telecom”、“Unicom”、“Mobile”或“电信”、“联通”、“移动”字样。记录下对应的 ID,执行定向测试:
speedtest `--server-id`=XXXXX将 XXXXX 替换为实际的服务器 ID。分别对三家运营商的服务器执行此操作,记录 Download 和 Upload 数值。
步骤二:搭建 LibreSpeed 测速节点(Docker 版)
如果你希望搭建一个节点供他人测试 inbound 速度,LibreSpeed 是轻量且开源的首选。使用 Docker 部署可避免环境依赖问题,并建议配置持久化策略。
docker run -d -p 80:80 `--name` speedtest `--restart` always ghcr.io/librespeed/speedtest参数说明:
-p 80:80:将容器 80 端口映射到宿主机 80 端口。若宿主机已占用 80,可改为-p 8080:80。`--restart` always:确保 VPS 重启后服务自动恢复,实现持久化运行。`--name` speedtest:指定容器名称,便于后续管理。
若需自定义前端配置(如 Logo、标题),可挂载卷到本地目录,但默认配置已满足大多数测速需求。
步骤三:防火墙与安全组配置
部署完成后,若无法从外网访问,通常是防火墙或云服务商安全组未放行端口。这是搭建节点最容易遗漏的环节。
1. 系统防火墙(以 UFW 为例)
检查防火墙状态,若处于激活状态,需放行 HTTP 端口:
sudo ufw allow 80/tcp
sudo ufw reload若使用 CentOS/RHEL 且启用了 firewalld:
sudo firewall-cmd `--permanent` `--add-service`=http
sudo firewall-cmd `--reload`2. 云服务商安全组
登录 VPS 提供商的控制台(如 AWS、阿里云、腾讯云等),找到实例对应的“安全组”或“防火墙”设置。确保入站规则(Inbound Rules)中允许 TCP 协议的 80 端口(或你映射的其他端口)对 0.0.0.0/0 开放。
验证与常见坑
1. 服务验证
使用本地浏览器访问 http://你的 VPS_IP。页面能正常加载并开始测速即表示服务运行正常。若无法访问,优先检查步骤三中的端口放行情况。
2. 命令语法错误
复制命令时切勿包含反引号(`)。例如 speedtest `--accept-license` 是正确的,而 speedtest `--accept-license` 会导致 Shell 尝试执行参数名为命令,从而报错。
3. 端口占用问题
若 VPS 已安装 Nginx 或 Apache,80 端口可能被占用。此时 Docker 启动会失败。建议修改映射端口,例如 -p 8080:80,访问时带上端口号 http://IP:8080。
4. 带宽方向差异
在 VPS 上运行 CLI 测试的是 VPS 到测速服务器的 outbound 速度。搭建 LibreSpeed 服务端测试的是用户到 VPS 的 inbound 速度。两者受路由和运营商策略影响,数值可能不完全一致。
5. 测试时段影响
晚高峰期间网络拥堵,测试结果可能低于平时。建议在不同时段多次测试取平均值,避免单次结果误导。
参考来源
- Ookla Speedtest CLI 官方页面:https://www.speedtest.net/apps/cli
- LibreSpeed GitHub 仓库:https://github.com/librespeed/speedtest