有哪些基于终端的网络速度测试工具可用?

我想找一种通过ssh在家测试我的互联网速度的方法。有人知道一个终端应用程序,可以给我类似speedtest.net的计算信息吗?
如果还有一些基于常见互联网端口的测试(如网页、种子等),那就太棒了,这样你就可以看到你的ISP是否限制了你的速度。

或者你可以像这个提示建议的那样使用iperf来测试两台设备之间的网络速度:http://askubuntu.com/questions/7976/how-do-you-test-the-network-speed-betwen-two-boxes。 - larsr
6个回答

你可以使用nload安装nload)来实现这个目的。示例输出:

alt text

你可以通过以下命令安装nload
sudo apt-get install nload

也可以在软件中心找到。

使用-u和-t选项非常完美地解决了这个问题。谢谢! - wajiw

2016年11月更新:我已停止使用。请使用其他提供商,例如Init7,链接为http://speedtest.init7.net/10GB.dat

原始回答:

还有这个简单的“速度测试”:

wget -O/dev/null speedtest.pixelwolf.ch

这将为您提供当前的速度,最高可达100兆位每秒。

请问你能解释一下-0/dev/null这部分是什么意思吗? - nutty about natty
2“man wget”中的引用:“-O FILE”或“--output-document=FILE”是指定wget命令保存结果的位置。而“/dev/null”是Linux系统中一个并不存在的设备。所有保存在那里或发送到那里的内容都将被忽略,并且不会占用文件系统空间。否则,您将不得不删除speedtest的保存文件。 - thonixx
但为什么是-0/dev/null而不是-0 /dev/null呢?空格不重要吗?有没有空格都可以使用吗? - nutty about natty
2是的,它可以在有或没有的情况下工作。而且这里的“O”是指奥斯卡(Oscar),而不是零(0)。 - thonixx
对我来说,它失败了。--2016-11-06 06:33:56-- http://speedtest.pixelwolf.ch/ 正在解析 speedtest.pixelwolf.ch (speedtest.pixelwolf.ch)... 失败:无法找到与主机名相关联的地址。 wget: 无法解析主机地址 'speedtest.pixelwolf.ch' - Ahmad Awais
抱歉。我没有继续这个文件(尽管自2012年以来我已经这样做了几年)。目前我使用的是瑞士Gigabit供应商Init7提供的“wget -O /dev/null http://speedtest.init7.net/10GB.dat”。 - thonixx

Netperf怎么样?http://manpages.ubuntu.com/manpages/maverick/man1/netperf.1.html

netperf 安装netperf

从手册中引用:

Netperf是一个用于测量网络性能各个方面的基准测试工具。目前,它主要关注使用TCP或UDP以及Berkeley Sockets接口进行大数据传输和请求/响应性能。此外,还可以有条件地编译DLPI、Unix Domain Sockets和IPv6的测试。


多么精彩的节目。 - Stefano Palazzo
在10.04版本中一直给我一个错误:netperf: send_tcp_stream: data socket connect failed: Address family not supported by protocol。有没有关于使用示例的想法? - wajiw
TCP流性能测试是netperf程序的默认测试类型。最简单的测试是通过输入以下命令进行的:/opt/netperf/netperf -H remotehost这将在本地系统和由remotehost标识的系统之间进行10秒钟的测试。两端的套接字缓冲区大小将根据系统的默认值设置,并且所有TCP选项(例如TCP_NODELAY)将保持默认设置。 - OpenNingia

我知道的最简单的解决方案就是简单地使用。
wget -O/dev/null http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso

wget会提供文件大小、下载时间和下载速度。
如果你需要更复杂的解决方案,请看一下iperf。然而,这个解决方案更加复杂,因为它需要更多的设置,并且不是直接的(例如,它需要一个比你的服务器速度更快的服务器)。

1我更希望找到一个能够以更简单的字符串形式返回计算结果的软件包,这样我就可以设置一个脚本将其存入数据库,并对我的连接进行分析。谢谢你的建议。 - wajiw
我猜你可能需要编写一个小的bash脚本,将wget的输出格式化为一个简单的字符串(甚至可以定期运行测试),但是当涉及到测量速度时,我怀疑是否有任何东西只返回一个字符串,大多数软件除了提供详细信息外还会说很多其他的东西,并希望用户对提供的细节感到满意,所以我怀疑你可能需要手动格式化输出(或使用脚本)。 - Rafał Cieślak
@RafałCieślak 请问你能解释一下-0/dev/null这部分吗? - nutty about natty
1@nuttyaboutnatty 当然可以!这个命令告诉wget将下载的数据写入/dev/null,因此实际上所有下载的内容都不会被存储或保存在任何地方,因为浪费磁盘空间来测试网络速度是愚蠢的。 - Rafał Cieślak
@RafałCieślak 谢谢; 我以前从未听说过“null设备”http://en.wikipedia.org/wiki//dev/null; 这是有趣的东西,慢慢扩展我的*nix知识...在其他地方我看到了 wget --output-document=/dev/null http://speedtest.. 这与 -0/dev/null 有何不同? - nutty about natty
@nuttyaboutnatty 这两个选项完全相同。-0--optput-document 的同义词。使用 man wget 可以帮助你了解它的所有标志! - Rafał Cieślak

你在传输文件的同时也可以使用 iftop。

scp username@remoteserver.com:/some-file.ext .

将显示类似以下内容:

some-file.ext
24% 16KB 13.0KB/s 00:03 ETA^