在运维服务器、配置 Nginx/Apache 或测试 VPS 网络性能时,我们经常需要一个固定大小(比如 1GB)的大文件来测试下载速度。

很多新手会去网上找现成的测试链接,但其实利用 Linux 系统自带的 dd 命令,我们只需一行代码就能在本地瞬间生成一个测试文件。

本文将介绍三种生成方案,并深度解析其中的坑点和优化技巧。


方案一:极速生成(适合内网或无压缩环境)

如果你只是想要最快速度生成一个 1GB 的文件,并不在乎文件内容(全为 0),可以使用 /dev/zero 作为输入源。

💻 命令:

dd if=/dev/zero of=1GB.test bs=1M count=1024 status=progress

📝 参数解析:

  • if=/dev/zero:输入源。这是一个特殊的设备,会源源不断地吐出二进制“0”。
  • of=1GB.test:输出文件名。
  • bs=1M:Block Size,块大小设为 1MB。
  • count=1024:计数。1MB × 1024 = 1024MB = 1GB。
  • status=progress:显示进度条(推荐加上,否则不知道卡没卡)。

✅ 优点:

  • 生成极快:几乎不受 CPU 限制,瞬间完成。
  • 磁盘 IO 压力小:仅取决于硬盘写入速度。

❌ 缺点(重要):

  • 容易被压缩:因为文件内容全是 0,如果你的 Web 服务器(Nginx/Apache)开启了 Gzip 或 Brotli 压缩,这个 1GB 的文件在传输时可能会被压缩成几 MB。这会导致测速结果严重虚高(例如:看似跑满了千兆带宽,实际并没有)。

方案二:生成随机数据(防压缩,测速更真实)

为了防止 Web 服务器或中间网络设备对文件进行压缩,我们需要生成一个内容完全随机的文件。

💻 命令:

dd if=/dev/urandom of=1GB.test bs=1M count=1024 status=progress

📝 关键变化:

  • if=/dev/urandom:使用系统的随机数生成器作为输入源。

✅ 优点:

  • 结果真实:随机数据无法被压缩,能够真实反映网络带宽吞吐量。

❌ 缺点:

  • 生成速度慢:产生随机数需要消耗大量 CPU 计算资源。在单核 VPS 上,生成 1GB 可能需要几十秒甚至更久。

方案三:高性能进阶(OpenSSL + 内存盘)

如果你的服务器配置较低,dd 生成随机数太慢;或者你的硬盘太慢,跟不上网络带宽(例如 10Gbps 口),可以使用以下“大招”。

1. 使用 OpenSSL 快速生成随机文件

OpenSSL 的加密算法产生随机数的速度比 dd 读取 /dev/urandom 快得多。

# 快速生成 1GB 随机内容文件
openssl rand -out 1GB.test $((1024*1024*1024))

2. 利用内存盘(Ramdisk)消除磁盘瓶颈

如果你的磁盘读写慢,测速时可能会出现“磁盘占用 100% 但网速没跑满”的情况。Linux 的 /dev/shm/ 目录是挂载在内存中的,读写速度极快。

# 1. 在内存中生成文件 (注意:由于占用内存,请确保可用内存大于 1GB)
dd if=/dev/zero of=/dev/shm/1GB.test bs=1M count=1024

# 2. 将内存文件软链接到你的 Web 目录 (假设 Web 目录在 /var/www/html)
ln -s /dev/shm/1GB.test /var/www/html/1GB.test

这样用户下载时,数据直接从内存流向网卡,速度只受限于带宽!


常见问题 FAQ

Q1: 生成的文件到底在哪?

很多新手执行完命令后找不到文件。这取决于你执行命令时所在的目录。

  • 如果你在 /root 下执行,文件就在 /root/1GB.test
  • 建议使用 绝对路径 以免找不到:

    dd if=/dev/zero of=/var/www/html/1GB.test ...

Q2: 如何清理这些文件?

测试完毕后,别忘了删除文件,否则会占用宝贵的磁盘空间。

rm -rf 1GB.test
# 或者删除绝对路径
rm -rf /var/www/html/1GB.test

Q3: bs 和 count 参数可以改吗?

可以。

  • 如果你想生成 100MB 的文件:bs=1M count=100
  • 如果你想生成 10GB 的文件:bs=1M count=10240

总结

场景推荐方案命令关键词
快速测试 / 内网测试方案一 (全零填充)if=/dev/zero
公网测速 / 严谨测试方案二 (随机填充)if=/dev/urandom
CPU性能弱 / 追求效率方案三 (OpenSSL)openssl rand

希望这篇文章能帮你快速搭建好测速环境!如果你觉得有用,欢迎点赞分享。

最后修改:2026 年 03 月 16 日
如果觉得我的文章对你有用,请随意赞赏