用命令行工具Speedtest-CLI来测试你的上下行网速
================================================================================

我们经常需要到检查家里与办公室之间的网络是否连通,那么我们要怎么做呢?打开网站Speedtest.net然后开始测试。网站是通过加载浏览器中的JavaScript脚本然后选择最佳的服务器测速然后用Flash产生图形化的结果。

那么远程服务器呢?要知道大多数远程服务器是没有浏览器可以打开web页面的。用浏览器打开网页测速的瓶颈就在此,你不能按计划的对服务器进行定期的常规测试。这时需要到一个名为Speedtest-cli的软件来打破这个瓶颈,它能让你通过命令行来测试互联网连接的速度。

#### Speedtest-cli是什么 ####

此程序是基于Python开发的脚本程序,利用了speedtest.net的服务来测量出上下行的宽带。Speedtest-cli能根据机房离测速服务器的物理距离来列出测速服务器,或者针对某一服务器进行测速,同时还能为你生成一个URL以便你分享你的测速结果。

要在Linux上安装最新版本的speedtest-cli,你必须安装2.4-3.4或者更高版本的Python。

### 在Linux上安装speedtest-cli ###

有两种方法可以安装speedtest-cli。第一种方法需要用到`python-pip`包管理器,第二种方法需要安装Python脚本,生成安装文件然后运行,这里我们分别介绍两种方法:

#### 使用pythin-pip安装speedtest-cli####

首先你需要安装`python-pip`包管理器,之后你就可以用pip命令来安装speedtest-cli

    $ sudo apt-get install python-pip
    $ sudo pip install speedtest-cli

如果要把speedtest-cli升级至最新版本,你需要输入以下命令

    $ sudo pip install speedtest-cli --upgrade

#### 通过Pyhton脚本来安装speedtest-cli ####

首先要用wget命令从github上下来Python脚本,然后解压提取下载的文件(master.zip)

    $ wget https://github.com/sivel/speedtest-cli/archive/master.zip
    $ unzip master.zip 

提取出文件后,进入提取出的目录`speedtest-cli-master`然后使脚本可以执行。

    $ cd speedtest-cli-master/
    $ chmod 755 speedtest_cli.py 

下一步,把可执行的脚本移动到`/usr/bin`文件夹,这样你就不用每次都输入完整的脚本路径了。

    $ sudo mv speedtest_cli.py /usr/bin/

### 用speedtest-cli测试互联网连通速度###

**1. 要测试你的下载与上传速度,只需要运行`speedtest-cli`命令,不需要带参数。**

    $ speedtest_cli.py

![Test Download Upload Speed in Linux](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Download-Upload-Speed-in-Linux1.png)

*在Linux下测试上传下载速度*

**2. 测试上传下载的速度(以字节计算)**

    $ speedtest_cli.py --bytes

![Test Internet Speed in Bytes](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Speed-in-Bytes.png)

*测试bytes的速度*

**3. 工具提供一个链接来下载由你的宽带测试结果生成的图片,你可以分享给你的家人朋友。**

![Share Internet Speed Results](http://www.tecmint.com/wp-content/uploads/2015/03/Share-Internet-Speed-Results.png)

*分享测速结果*

下面的图片就是你通过以上的命令行测速而生成的图片

![Speed Test Results](http://www.tecmint.com/wp-content/uploads/2015/03/Speed-Test-Results.png)

*测速结果*

**4.如果你仅仅需要Ping,上传,下载的结果,就运行以下命令:**

    $ speedtest_cli.py --simple

![Test Ping Download Upload Speed](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Ping-Download-Upload-Speed1.png)

*测试Ping,上传,下载的速度*

**5. 列出`speedtest.net`所有的服务器距离你的物理距离,单位是千米(km)**

    $ speedtest_cli.py --list

![Check Speedtest.net Servers](http://www.tecmint.com/wp-content/uploads/2015/03/Check-Speedtest-Servers.png)

*列出Speedtest.net的服务器*

**6. 当获得一个非常长的服务器列表之后,怎么列出我想要的某个服务器?如果我要在speedtest.net服务器列表中找出位于Mumbai(印度)的服务器呢?**

    $ speedtest_cli.py --list | grep -i Mumbai

![Check Nearest Server](http://www.tecmint.com/wp-content/uploads/2015/03/Check-Nearest-Server.png)

*列出最近的服务器*

**7. 对指定的服务器进行测速。我们使用上面例子5和例子6中获取的服务器ID:**

    $ speedtest_cli.py --server [server ID]
    $ speedtest_cli.py --server [5060]              ## 这里使用服务器ID为5060作为例子

![Test Connection Against Server](http://www.tecmint.com/wp-content/uploads/2015/03/Test-Connection-Against-Server.png)

*对指定的服务器进行测速*

**8. 输出`speedtest-cli`的版本信息和帮助文档**

    $ speedtest_cli.py --version

![Check SpeedCli Version](http://www.tecmint.com/wp-content/uploads/2015/03/Check-SpeedCLi-Version.png)

*输出版本号*

    $ speedtest_cli.py --help

![SpeedCli Help](http://www.tecmint.com/wp-content/uploads/2015/03/SpeedCli-Help.png)

*输出帮助文档*

**提醒:**报告中的延迟并不是确切的结果,不应该过于依赖它;这个数值可以当作相对延迟,这对你选择某一测试服务器来说是可靠的。同时,CPU和内存的容量会影响结果的准确度。

### 结论 ###

系统管理员和开发者应该必备这个简单的脚本工具,这个轻量级的工具功能齐全,真是太赞了。我不喜欢Speedtest.net的原因是它使用来flash,相反speedtest-cli刚好戳中了我的痛点。

speedtest_cli是一个第三方工具,也不能自动地记录下宽带速度。Speedtest.net拥有上百万的用户,你可以自己[配制一个小型的测速服务器][1]。

上面就是所有内容,更多内容敬请关注我们。如果你有任何反馈记得在文章下方评论,如果你喜欢别忘了给我们点个赞,分享我们的文章。

--------------------------------------------------------------------------------

via: http://www.tecmint.com/check-internet-speed-from-command-line-in-linux/

作者:[Avishek Kumar][a]
译者:[NearTan](https://github.com/NearTan)
校对:[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/speedtest-mini-server-to-test-bandwidth-speed/