我不想去类似speedtest.net的站点,而是想从Ubuntu上的终端检查我当前的Internet速度。我该怎么办?

评论

我通过speedtest-cli获得的结果大大低于我从speedtest.net获得的速度。speedtest-cli下载18.27 Mbits / s上传3.43 Mbits / s speedtest.net下载59.38 Mbits / s上传12.14 Mbits / s我不能认为speedtest-cli无论如何都是对网络速度的有效测试。

@ user375058:speedtest-cli使用与SpeedTest.net相同的服务器(等)。您应该将speedtest-cli和www.speedtest.net视为等效,只是前端不同。如果它们都使用同一台服务器,如果您始终获得明显不同的结果,我将感到惊讶。如果他们使用的不是同一台服务器,那么您没有进行比较的依据。最后,我对这两个实用程序的结果每次运行之间的差异为2-4倍。我建议您测试2-4台服务器,并为每台服务器执行3-4次运行并比较工具。

@ user375058:我实际上只是按照我的建议去做。有关我的结果,请参见下面我的评论中的链接。

sudo apt安装speedtest-cli

#1 楼

我建议为此使用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 (x.x.x.x)...
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


评论


这似乎无法正常工作。我的BT Infinity降了50bBit,而升了20Mbit。但是结果显示上升了0.53Mbit,上升了0.2Mbit。 ??小数位数放置不正确?使用wget我可以得到4.27M / s(34Mbit)(虽然是其他一些服务器)?

– Piotr Kula
2013年9月2日在21:53



正如这里已经指出的那样:由于speedtest-cli是python应用程序,因此通过执行以下操作安装起来要容易得多:pip install speedtest-cli或:easy_install speedtest-cli根据系统上Python的安装方式,您可能需要做上述工作的根本。

–CrandellWS
2014年2月9日在4:18



确认speedtest-cli已损坏。不显示高于1Mbps的速度。声称要传送任何资讯时,不会传送任何资讯。

– int_ua
2014-09-10 0:32



这应该确实是一个可以接受的答案。认为@int_ua遇到兼容性问题或互联网问题。

– Peelman
2014年10月30日12:22

这应该是正确的答案。速度测试意味着下载和上传。第一个答案仅能衡量下载速度,而不能完全反映您的互联网连接速度。特别是如果您在该计算机上托管某些东西!

–埃米尔·博尔科尼(Emil Borconi)
2015年1月20日14:14

#2 楼

在命令行上尝试

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


也尝试一下

sourceforge.net/projects/tespeed/


从上方链接获取它

评论


您能否解释一下/ dev / null代表什么?

–关于坚果的坚果
13年4月4日在11:14

这是特殊的文件,它只是删除写入其中的数据,

–快球
13年4月4日在12:24

对我而言,在使用Python 2.7.8的Ubuntu 14.10上,命令wget --output-document = / dev / null http://speedtest.wdc01.softlayer.com/downloads/test500.zip比后来使用speedtset-cli更好。似乎冻结,并且^ C无法中断命令。使用wget,我可以轻松地用^ C减少下载量

– Willoczy
2014年11月27日20:50

@mlissner,看起来像是第一速度(兆位),第二速度(兆位)。

–vp_arth
15年8月14日在11:19

请注意,speedtest.wdc01.softlayer.com只是一台特定的Speedtest服务器。世界各地有成千上万的计算机,根据您所处的位置,进行此测试可能会或可能不会为您提供正确的结果。 Speedtest.net会自动选择最接近您的服务器,这应该更相关。理想情况下,您应该使用浏览器的开发工具来确定您所选择的主机名/ URL speedtest.net,并在上面的wget行中使用它而不是speedtest.wdc01.softlayer.com。

– Kibber
18年3月21日在8:42

#3 楼

如果您不愿意安装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


更多详细信息

评论


+1 iperf非常适合验证以太网和WIFI速度

–kfmfe04
13年5月22日在10:19



iperf非常适合LAN,但用户正在询问WAN。

–IMTheNachoMan
18/09/11在12:22

那些没有可连接的远程服务器的人,有公开可用的iperf服务器:iperf.cc

– Dominykas Mostauskis
19-10-14在10:28

速度测试毫无用处,因为大多数互联网提供商都知道其服务器地址并对其进行优先级排序。使用iperf可以获得的结果是speedtest给我的结果的十分之一。这些就是我达到的有效速度。

– dargaud
3月12日18:36

#4 楼

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

要使用它,只需指向互联网上一个相对较大的文件,以便您可以对其进行更好的估算。

例如

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



当然,有一些建议:


使用好的服务器对自己进行速度测试。对于我的链接,速度小于200KB,因此,如果速度较高,服务器将成为您的瓶颈,而不是您的实际速度。
您将看到的最高速度是您的最高速度。连接和服务器的连接可以提供。如果您的连接为512KB,而下载的位置为400KB,则最大连接数将为400KB,因为这是您要从中下载服务器的最大连接数。
您需要进行至少5次测试才能拥有进行可靠的速度检查,或者至少进行一两分钟。这将帮助您进行更准确的检查。
您需要至少4或5个不同的测试源才能获得更准确的速度。切勿仅从同一站点进行测试,因为这可能会受到您与该站点的距离,服务器中的任何问题以及与它的连接等的影响。请始终从不同的服务器进行测试。

ARIA2

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

   sudo apt-get install aria2


要使用它很简单:



在图中,-x 4是我们希望使用多少个并行连接。下一行的CN参数显示了允许从该站点下载多少个活动并行连接。在这种情况下,CN为4。但是,如果我们尝试建立更多的连接,则会得到以下内容:



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

评论


wget尚无法进行分段下载,即使用多个(并行)连接下载单个文件,因此,如果您的ISP限制了每1个连接的速度,您将无法获得准确的结果...它使用其他工具,至少可以使用分段下载(例如aria2),将是一种更精确的测试

–满载B.
13年8月7日在9:21

这不是速度测试,这只是下载速度测试!互联网速度测试意味着下载与下载!第二个答案以及所有其他提及speedtest-cli的问题都具有正确的方法。

–埃米尔·博尔科尼(Emil Borconi)
15年1月20日在14:16

@EmilBorconi您是正确的,但在现实生活中,我们并未在此处对互联网速度进行基准测试,这只是您对任何家庭用户当前的平均速度测试,而无需使用诸如speedtest之类的网站。下载速度(对于任何试图查看是否有瓶颈的人来说,足够了)是一个很好的测试。全面的降速测试会根据您的ISP来检查您的整个速度范围。是的,那将是最好的解决方案,但是对于任何快速测试方案,即使是简单的wget也能解决问题,因为通常人们比下载更担心下载速度。

–路易斯·阿尔瓦拉多(Luis Alvarado)
15年1月20日在16:32

@LuisAlvarado很抱歉,如果我听起来很粗鲁,只是我认为人们应该能够完全理解他们的要求/接受的答案是什么。很多新手将在论坛上讨论,他们将假设/选择/停止接受的答案,并且在他们的假设中形成错误的形象。是的,下载是更重要的,然后是上传,除非您是个狂狂,每5分钟发布一次自拍照,然后仅因为您测试了下载的效果就可以了,所以与您的ISP展开斗争,但是您上传的内容很糟糕……再次抱歉如果我的语气不礼貌,不想侮辱...

–埃米尔·博尔科尼(Emil Borconi)
15年1月21日在9:52

我喜欢wget比curl更胜一筹,因为wget显示MB / s(非常清楚是MB / s),而curl只显示k(不是很明显,它是KB / s)。

– Wisbucky
19-09-18在22:48



#5 楼

由于speedtest-cli是python应用程序,因此通过执行以下操作安装起来要容易得多:

pip install speedtest-cli


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

#6 楼

我碰巧喜欢speedometer Ubuntu cli。

speedometer -r eth0


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

评论


多数民众赞成在实际上是我寻找了一段时间!谢谢!但我不喜欢它以Kib而不是Kb或KB显示速度

– redbeam_
16-09-24在19:06

#7 楼

我经常使用类似这样的东西:

% wget -O /dev/null --progress=dot:mega http://cachefly.cachefly.net/10mb.test ; date
--2020-01-06 03:31:05--  http://cachefly.cachefly.net/10mb.test
Resolving cachefly.cachefly.net (cachefly.cachefly.net)... 2607:7700::18:0:1:cdea:afaf, 205.234.175.175
Connecting to cachefly.cachefly.net (cachefly.cachefly.net)|2607:7700::18:0:1:cdea:afaf|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10485760 (10M) [application/octet-stream]
Saving to: <</dev/null>>

     0K ........ ........ ........ ........ ........ ........ 30% 3.02M 2s
  3072K ........ ........ ........ ........ ........ ........ 60% 3.97M 1s
  6144K ........ ........ ........ ........ ........ ........ 90% 3.94M 0s
  9216K ........ ........                                    100% 3.99M=2.8s

2020-01-06 03:31:08 (3.62 MB/s) - <</dev/null>> saved [10485760/10485760]

Mon Jan  6 03:31:08 CST 2020
%


您可以将10mb中的/10mb.test部分更改为1mb4mb5mb10mb50mb100mb200mb400mb2000mb4000mb以及其他可能的值。

还可以将--progress=dot:mega部分更改为--progress=dot:default--progress=dot:binary--progress=dot:mega--progress=dot:giga;此设置可帮助您查看下载进行的速度,并在整个下载过程中保留多个读数,这在您需要与某人共享结果或仅将其保存为自己的记录时有用一种图。

#8 楼

一个简单的单行代码,用于测试下载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))

说明:


将时间戳存储在$ t中
下载100mb但不存储任何内容
计算8 * 100mb / $t



评论


当我从无状态的只读rootFS进行测试时,这非常有效,而wget并未输出速度。

–乔什·哈布达斯(Josh Habdas)
18年6月18日在18:31



尽管它简单而准,但是当您要测试连接速度但只能访问一个网站的互联网时,这可能是唯一的选择。

– Undercat为Monica鼓掌
3月30日10:28



#9 楼

在大型文件上使用timeout命令运行wget的多个实例:秒图。应该非常准确,您可以添加更多实例以最大程度地利用带宽。

我还没有测试完整的脚本,但是单行命令“ timeout 5 wget url”有效,并且部分下载了结果(如果5秒不足以完成下载)。

评论


这将需要一些服务器设置...

–脑袋
2013年9月20日下午3:06

url_1,2,3,4可以是任何东西,例如公共服务器。

–rexis
2013年9月20日在3:27

例如超时5 wget http://speedtest.netcologne.de/test_100mb.bin -O / tmp / temp5sec然后分析文件大小并指定5:expr $(stat --printf =“%s” / tmp / temp5sec) / 5/1024千位/秒

–rubo77
15年8月29日在11:49



#10 楼

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

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




更多信息,请使用:

 ./tespeed.py  -h


它将提供更多的速度测试选项。

评论


注意:需要lxml

–马特
18年2月13日在0:22

它返回错误:lxml.etree.XMLSyntaxError:期望开始标记,找不到“ <”,第1行,第1列

– Alexis_A
7月23日22:28

#11 楼

实际上,Speedtest的提供者Ookla发布了一个命令行实用程序,该实用程序正在针对遍布全球的大量服务器来衡量您的速度。您可以在此链接上找到有关如何安装它的说明,并且可以通过执行以下命令非常简单地使用它:

speedtest -s XXXX -f csv|tsv|jsonl|json|json-pretty


其中-s设置了您要针对的服务器ID要测试您的互联网速度,-f正在定义输出的格式。我认为使用json/json-pretty格式输出时会生成最有用的信息,因为如果使用csv/tsv格式,则不会打印测试设置的许多信息。 -s-f都是可选的,但如果要自动化测量,它们可能会有用。

另外,您可以在XML地址形式的此地址上或该地址上带有searchable field:链接的地方找到speedtest正在使用的服务器列表。

#12 楼

基于@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 -b $TMP_PATH | grep total | awk '{print }')

echo "Cleaning up"
rm -rf $TMP_PATH

speed=$(echo "scale=2; $total_bytes / $TEST_TIME / 128" |bc)

echo "Speed is $speed Mbit/s"

exit 0


评论


一减-当我使用其他语言作为英语怎么办?参见:grep :)部分

–ceph3us
16年3月14日在16:53

#13 楼

为了方便地获得每秒下载速度,我在$ HOME / .bash_aliases文件中定义了以下内容:

speed-test='wget --output-document=/dev/null --report-speed=bits http://speedtest.wdc01.softlayer.com/downloads/test500.zip'


其中:

--output-document=/dev/null有效丢弃wget输出

--report-speed=bits显示wget下载平均速度,以每秒比特数(bps)代替默认每秒字节数(Bps)

#14 楼

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

它们使用curl(这是一个著名的命令行实用程序)来进行速度测试。



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

#15 楼

我想要比speedtest.net更高级的东西以及仅依赖于单个网站的各种解决方案。因此,我做了我通常做的事情,并编写了自己的解决方案:

https://github.com/cubiclesoft/network-speedtest-cli

从功能列表中:


SSH / SFTP(端口22)速度测试。
公用TCP端口80、443和8080以及使用自定义TCP / IP服务器的随机TCP端口速度测试支持最高2.2 Gbps的下行速度和780 Mbps的上行速度。
进行基本的网络延迟测试。
启动Digital Ocean Droplet,并测试SSH / SFTP和各种TCP端口。
Speedtest.net和自定义的OoklaServer速度测试。产生与single.speedtest.net上的单连接测试类似的结果。
以静默模式(-s)输出纯JSON。

这是一种更通用的解决方案,可以被其他应用程序使用。我设法查明了ISP网络问题,该问题导致SFTP下行速度提高了一倍,从而增加了幸福感。

#16 楼

对于图表+ 30,000英尺的代表实际速度的视图
我正在寻找:

广泛的,多ISP的真实速度的代表视图
上载速度+往返延迟。不仅仅是下载速度
消除ISP的偏见,消除它们可能使特定速度测试比大多数其他速度更快出现的技巧。
高级图形输出而不是数字。一张照片价值一千个单词

我找不到能满足所有这些要求的东西,我自己写了东西,同时又避免了重新发明轮子。
在引擎盖下,我使用了speedtest-cli ISP选择和度量,R/ggplot用于绘制。该代码已经在Ubuntu 16.04和18.04上进行了很好的测试。
输出提供了3个主要指标(下载,上传和ping往返时间),用于最接近您的20个数据中心(测试人员),以及估计的距离和Internet提供商名称。
源代码
所有代码都可以从github上获得,其中包含howto,示例以及我寻找更快速度的故事。
所有这些代码均基于CLI。也可以从命令行调用图像查看器。
它生成的图表示例
计划升级后(DL速度很大,UL速度没那么大)

手动注释的早期测试,测试了一种理论: