如何通过终端检查网速?

我想从Ubuntu上的终端检查我目前的互联网速度,而不是去speedtest.net这样的网站。 我该怎么做?

我推荐使用speedtest-cli工具。 我创建了一篇博客文章( 从Linux命令行测量Internet连接速度 ),详细介绍了它的下载,安装和使用。

简短的版本是:( 不需要root)

 curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python - 

输出:

 Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from Comcast Cable (xxxx)... Selecting best server based on ping... Hosted by FiberCloud, Inc (Seattle, WA) [12.03 km]: 44.028 ms Testing download speed........................................ Download: 32.29 Mbit/s Testing upload speed.................................................. Upload: 5.18 Mbit/s 

2018年更新:

使用pip install --user speedtest-cli可以获得一个可能比您的发行版存储库中的版本更新的版本。

2016年更新:

speedtest-cli现在在Ubuntu存储库中。 对于Ubuntu 16.04(Xenial)以及以后使用:

 sudo apt install speedtest-cli speedtest-cli 

在命令行上试试这个

 wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip 

试试这个

 sourceforge.net/projects/tespeed/ 

从上面链接得到它

如果您无法安装iperf,则可以在任何使用time命令移动已知数据量的命令之前进行操作。

iperf简单易用。

它需要客户端和服务器。

(在服务器上)

  user@server$ iperf -s 

(在客户端)

  user@client$ iperf -c server.domain ------------------------------------------------------------ Client connecting to 192.168.1.1, TCP port 5001 TCP window size: 16.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.1.3 port 52143 connected with 192.168.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 113 MBytes 94.7 Mbits/sec 

更多细节

好吧,我使用wget 。 那个小工具很好地告诉我我的速度。

要使用它只是指向相对较大的互联网文件,以便您可以更好地估计它。

例如

输入: wget http://hostve.com/neobuntu/pics/Ubu1.avi将开始下载Ubu1.avi文件并以下载速度显示。

在此处输入图像描述

当然有几个建议:

  1. 使用优质服务器快速测试自己。 在我的链接的情况下,速度小于200KB,所以如果你有更高的速度,服务器将是你的瓶颈,而不是你的实际速度。

  2. 您将看到的最高速度是您的连接和服务器连接可以提供的最大速度。 如果您的连接数为512KB,并且您下载的位置为400KB,则最大连接数为400KB,因为它是您下载的服务器的最大连接数。

  3. 您需要至少进行5次测试才能进行可靠的速度检查,或至少进行一两分钟的测试。 这将有助于您进行更准确的检查。

  4. 您需要至少有4或5个不同的测试源才能获得更准确的速度。 切勿仅从同一站点进行测试,因为这可能会受到距离,服务器中的任何问题及其连接等因素的影响。始终从不同的服务器进行测试。

ARIA2

这是wget的替代方案。 wget的缺点是缺乏并行连接。 要使用aria2,我们需要下载它:

  sudo apt-get install aria2 

使用它很简单:

在此处输入图像描述

在图像中, -x 4是我们希望使用多少个并行连接。 下一行中的CN参数显示允许从该站点下载的活动并行连接数。 在这种情况下,CN是4.但是如果我们尝试拥有更多连接,我们会得到这样的结果:

在此处输入图像描述

我们设置了8个并行连接,但是网站只允许最多5个,如CN:5所示。 这可以通过-j选项来解决,该选项告诉aria2c我们想要的最大并发连接数(默认情况下为5),但如果服务器限制了这个,则-j将无效。

由于speedtest-cli是一个python应用程序,因此通过执行以下操作更容易安装:

 pip install speedtest-cli 

要么:

 easy_install speedtest-cli 

根据系统上Python的安装方式,您可能需要root才能执行上述操作。

我碰巧喜欢speedometer Ubuntu cli。

 speedometer -r eth0 

观看传入数据速度的实时图表。

在大文件上使用timeout命令运行wget的几个实例:

 #!/bin/bash timeout 5 wget -q url_1/100MB.zip & timeout 5 wget -q url_2/file.zip & timeout 5 wget -q url_3/sample.mov & timeout 5 wget -q url_4/speech.mp4 & 

然后编写一个脚本来计算下载的总字节数,然后除以5秒钟得到一个字节/秒的数字。 应该非常准确,您可以添加更多实例以最大化您的带宽。

我还没有测试完整的脚本,但单行命令“timeout 5 wget url”有效,你得到一个部分下载的文件(如果5秒不足以完成下载)。

你可以使用tespeed 。 它是使用Speedtest.net服务器的终端网络速度测试。 它使用最近的测试服务器,但也可以使用用户手动指定的服务器。

  git clone git://github.com/Janhouse/tespeed.git cd tespeed git submodule init git submodule update ./tespeed.py 

在此处输入图像描述

欲了解更多信息:

  ./tespeed.py -h 

它将为速度测试提供更多选择。

基于@rexis的简单bash脚本回答。 您可以将自己的链接放在links数组中进行测试,也可以从文件中读取它们

 #!/bin/bash export LC_ALL=C #make output in English eg for later use with "du | grep" TMP_PATH=/tmp/speedtest_data/ TEST_TIME=5 rm -rf $TMP_PATH && mkdir $TMP_PATH links=("http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-2b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1b.bin" "http://client.cdn.gamigo.com/bp/eu/com/110a/BPClientSetup-1c.bin" "http://ftp.ntua.gr/pub/linux/ubuntu-releases-dvd/quantal/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.funet.fi/pub/Linux/INSTALL/Ubuntu/dvd-releases/releases/12.10/release/ubuntu-12.10-server-armhf+omap.img" "http://ftp.icm.edu.pl/pub/Linux/opensuse/distribution/13.2/iso/openSUSE-13.2-DVD-x86_64.iso") echo "Testing download" for link in ${links[*]} do timeout $TEST_TIME wget -q -P $TMP_PATH $link & done wait total_bytes=$(du -c $TMP_PATH | grep total | awk '{print $1}') echo "Cleaning up" rm -rf $TMP_PATH speed=$(expr $total_bytes / $TEST_TIME) echo "Speed is $speed Kb/s" exit 0 

一个简单的单行程序,用于测试下载100MB所需的时间(也适用于/bin/sh ):

t=$(date +"%s"); wget http://speedtest.tele2.net/100MB.zip -O ->/dev/null ; echo -n "MBit/s: "; expr 8 \* 100 / $(($(date +"%s")-$t))

说明:

  1. 将时间戳存储在$ t中
  2. 下载100mb但不存储任何东西
  3. 计算8 * 100mb / $t

您也可以尝试http://dl.getipaddr.net

他们使用curl(这是一个众所周知的命令行实用程序)来运行速度测试。

简而言之

wget https://raw.github.com/blackdotsh/curl-speedtest/master/speedtest.sh&& chmod u + x speedtest.sh && bash speedtest.sh