首页 帮助中心 自建Looking Glass测试文件怎么生成?测试下载速度的配置方法!
自建Looking Glass测试文件怎么生成?测试下载速度的配置方法!
时间 : 2026-08-28 11:48:28
编辑 : 华纳云
阅读量 : 14

  Looking Glass直译过来叫“窥镜”,在网络运维领域,它是一套部署在服务器端的网络探测工具。你可以把它理解成一台放在你服务器机房的“测试终端”——用户通过浏览器访问LG页面,远程操作这台“终端”,让它对任意目标IP执行ping、traceroute、MTR,以及下载测速等操作,然后把结果实时显示出来。

  方向性很重要:LG是从你的服务器向外探测,而不是从用户家向你的服务器探测。这意味着:如果你把服务器放在美国,用户想测试“从我这里到你服务器下载速度怎么样”,应该用LG的下载测速功能——用户从LG页面下载测试文件,速度是多少,就说明“用户到你的服务器”的实际下载速度是多少。这个结果比任何商家的宣传截图都真实。

  一个功能完整的LG页面,至少应该提供三种测试:

  1. Ping测试:看延迟和丢包
  2. Traceroute/MTR:看路由路径,辨认真假CN2
  3. 测速文件下载:看实际可用带宽

  本文重点说第三项——测速文件怎么生成、怎么配置。

  方案一:用Docker快速部署(推荐)

  如果你不想折腾依赖环境,Docker是最省事的方案。

  1. 部署基础LG服务

  Docker Hub上有一个现成的镜像wikihostinc/looking-glass-server,一行命令就能跑起来:

docker run -it -d --name looking-glass --restart always -p 80:80 wikihostinc/looking-glass-server

  参数说明:

  --name looking-glass:给容器起个名字,方便后续管理

  --restart always:容器挂了自动重启

  -p 80:80:把容器的80端口映射到宿主机的80端口

  部署完成后,直接访问 http://你的服务器IP 就能看到LG页面。

  2. 测试文件在哪?怎么生成的?

  wikihostinc/looking-glass-server这个镜像自带测速文件生成功能。你部署完启动容器后,它会自动在容器内部生成若干个不同大小的测试文件(通常是1MB、10MB、100MB、1000MB),用户访问LG页面时,点击对应的下载按钮就能测速。

  如果你想自定义测试文件的大小和数量,比如想加一个500MB的文件,需要进入容器手动操作:

# 进入容器
docker exec -it looking-glass bash

# 找到测试文件存放目录(具体路径取决于镜像实现,常见的是 /var/www/html/ 或 /usr/share/nginx/html/)
# 用 dd 命令生成指定大小的文件
dd if=/dev/zero of=/var/www/html/test_500MB.bin bs=1M count=500

  dd命令的参数含义:

  if=/dev/zero:从零设备读取(全是0)

  of=/路径/文件名:输出的目标文件

  bs=1M:每次读写1MB

  count=500:重复500次,最终生成500MB的文件

  生成后,在LG页面的HTML模板里加上对应的下载链接即可。修改模板需要找到容器内或挂载出来的HTML文件,这里就不展开了,不同镜像的路径不太一样。

  方案二:基于gmazoyer/looking-glass手动部署

  如果你对Docker比较熟悉,想有更大的控制权,可以用gmazoyer/looking-glass这个镜像。它基于PHP+Apache,配置更灵活,社区也比较活跃。

  1. 准备工作

  在部署之前,先建好数据目录和相关文件:

# 创建目录
mkdir -p /opt/gmazoyer_looking_glass/agent

# 进入目录
cd /opt/gmazoyer_looking_glass

# 创建必要的空文件(后续配置会用到)
touch logo.png
touch config.php
touch looking-glass.log
touch looking-glass.db

# 调整权限,让容器内的www-data用户能读写
chown 33:33 looking-glass.*

  2. 配置并启动容器

# 拉取镜像
podman image pull docker.io/gmazoyer/looking-glass

# 或者用docker也可以
# docker pull docker.io/gmazoyer/looking-glass

# 启动容器
podman run --name looking_glass \
    --restart unless-stopped \
    -v /opt/gmazoyer_looking_glass/logo.png:/var/www/html/logo.png \
    -v /opt/gmazoyer_looking_glass/config.php:/var/www/html/config.php \
    -v /opt/gmazoyer_looking_glass/looking-glass.db:/var/www/html/looking-glass.db \
    -v /opt/gmazoyer_looking_glass/looking-glass.log:/var/log/looking-glass.log \
    -v /opt/gmazoyer_looking_glass/agent:/home/agent \
    -p 80:80/tcp \
    -d docker.io/gmazoyer/looking-glass

  关键参数说明:

  用-v做了几个目录和文件的挂载,这样你可以在宿主机上直接修改config.php等配置文件,而不用每次都进容器

  --restart unless-stopped:除非手动停止,否则重启后自动拉起

  3. 配置测速文件

  这个镜像的测速文件配置在config.php里。先编辑配置文件:

vi /opt/gmazoyer_looking_glass/config.php

  找到与测速文件相关的配置项(通常在$config数组里),示例配置如下:

<?php
$config = array(
    // 站点名称
    'site_name' => 'My Server Looking Glass',
    
    // 测试文件配置
    'test_files' => array(
        array('size' => 1, 'unit' => 'MB'),    // 1MB
        array('size' => 10, 'unit' => 'MB'),   // 10MB
        array('size' => 100, 'unit' => 'MB'),  // 100MB
        array('size' => 1000, 'unit' => 'MB'), // 1GB
    ),
    
    // 其他配置...
);

  配置完成后重启容器让配置生效:

podman restart looking_glass

  需要注意的是:gmazoyer/looking-glass镜像默认在容器启动时会自动生成配置中声明的测试文件,但如果文件已经存在,它可能不会覆盖。如果你想调整文件大小,建议先删掉旧文件再重启容器,或者进入容器手动生成。

  手动生成测试文件的方法:

# 进入容器
docker exec -it looking_glass bash

# 进入网站根目录
cd /var/www/html

# 生成测试文件,比如生成一个200MB的文件
dd if=/dev/zero of=test_200MB.bin bs=1M count=200

# 退出容器
exit

  方案三:纯手动搭建(不用Docker)

  如果你不想用Docker,也可以直接在服务器上手动部署。这里以Nginx+PHP环境为例。

  1. 准备环境

  确保服务器上已经装了Nginx和PHP(版本>=5.3,需要PDO with SQLite驱动)。

# Ubuntu/Debian
apt install nginx php8.1 php8.1-fpm php8.1-sqlite3 -y

# CentOS/Rocky
yum install nginx php php-fpm php-sqlite3 -y

  2. 下载源码

  用git把项目克隆下来:

cd /var/www
git clone https://github.com/gmazoyer/looking-glass.git

  或者下载ZIP包解压也行。

  3. 配置Nginx

  新建一个Nginx站点配置:

server {
    listen 80;
    server_name your-domain.com;  # 换成你的域名或IP
    
    root /var/www/looking-glass;
    index index.php index.html;
    
    location / {
        try_files $uri $uri/ =404;
    }
    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
}

  重载Nginx:

nginx -t && systemctl reload nginx

  4. 生成测试文件

  这一步跟前面Docker方案里的一样,直接在网站根目录用dd生成测试文件:

cd /var/www/looking-glass

# 生成不同大小的测试文件
dd if=/dev/zero of=test_1MB.bin bs=1M count=1
dd if=/dev/zero of=test_10MB.bin bs=1M count=10
dd if=/dev/zero of=test_100MB.bin bs=1M count=100
dd if=/dev/zero of=test_1000MB.bin bs=1M count=1000

  5. 修改页面模板让下载按钮指向这些文件

  找到index.php或对应的模板文件,在页面上加下载链接,比如:

<a href="/test_1MB.bin">下载1MB测试文件</a>
<a href="/test_10MB.bin">下载10MB测试文件</a>
<a href="/test_100MB.bin">下载100MB测试文件</a>
<a href="/test_1000MB.bin">下载1000MB测试文件</a>

  这样用户点击链接,浏览器就会直接下载对应的测试文件,下载速度就是实际可用带宽的直接反映。

  生成测试文件的几个注意事项

  1. 文件大小怎么选

  一般建议至少准备三个档位:

  小文件(1MB/10MB):测突发速度和连接建立速度

  中文件(100MB):测持续性带宽,这个最有参考价值

  大文件(1GB):测长时间稳定吞吐,用来排查是否有突发降速或限速策略

  2. 慎用太大的文件

  生成1GB以上的测试文件会占用磁盘空间。如果服务器硬盘不大,建议只保留100MB和200MB两个档位就够了。100MB已经能很好地反映出带宽水平,大文件主要是用来排查“前几秒快、后面掉速”这种情况的。

  3. 防止被滥用

  如果LG页面是公开的,测试文件可能会被频繁下载消耗带宽和流量。建议在Nginx层面做一下限速或频率限制,或者只对特定IP开放。这个看你的实际需求,如果是自用或内部测试,问题不大。

  4. 关于dd生成的文件内容

  dd if=/dev/zero生成的全是零字节内容,这种文件压缩比极高——如果开启了Nginx的gzip压缩,100MB的文件可能实际传输量只有几KB,测速结果就失真了。建议关闭测速文件路径的gzip压缩

location /test_*.bin {
    gzip off;
}

  验证配置是否生效

  配置完成后,打开浏览器访问你的LG页面,点击下载测试文件,观察下载速度是否跟服务器带宽匹配。还可以从外部机器用wgetcurl测试:

# 测试下载速度
wget -O /dev/null http://你的服务器IP/test_100MB.bin

# 或使用curl显示实时速度
curl -o /dev/null http://你的服务器IP/test_100MB.bin -w "%{speed_download}\n"

  如果下载速度稳定在带宽理论值附近(比如100Mbps带宽对应约12MB/s),说明配置成功。

  Looking Glass的价值在于把“广告词”变成“可验证的事实”。测速文件的生成其实不复杂,核心就是用dd命令造几个不同大小的文件,然后配到LG页面上让用户下载。关键是把这件事做到位了,自己心里有底,用户也能看到真实数据。

相关内容
客服咨询
7*24小时技术支持
技术支持
渠道支持