How to Test Your Internet Speed Bidirectionally from Command Line Using ‘Speedtest-CLI’ Tool

We always need to check the speed of the Internet connection at home and office. What we do for this? Go to websites like and begin test. It loads JavaScript in the web browser and then select best server based upon ping and output the result. It also uses a Flash player to produce graphical results.

What about headless server, where isn’t any web based browser and the main point is, most of the servers are headless. The another bottleneck of such web browser based speed testing is that, you can’t schedule the speed testing at regular interval. Here comes an application “Speedtest-cli” that removes such bottlenecks and let you test the speed of Internet connection from command line.

What is Speedtest-cli

The application is basically a script developed in Python programming Language. It measures Internet Bandwidth speed bidirectionally. It used infrastructure to measure the speed. Speedtest-cli is able to list server based upon physical distance, test against specific server, and gives you URL to share the result of your internet speed test.

To install latest speedtest-cli tool in Linux systems, you must have Python 2.4-3.4 or higher version installed on the system.

Install speedtest-cli in Linux

There are two ways to install speedtest-cli tool. The first method involves the use of python-pip package while the second method is to download the Python script, make it executable and run, here I will cover both ways….

Install speedtest-cli Using pythin-pip

First you need to install python-pip package, then afterwards you can install the speedtest-cli tool using pip command as shown below.

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

To upgrade speedtest-cli, at later stage, use.

$ sudo pip install speedtest-cli --upgrade

Install speedtest-cli Using Python Script

First download the python script from github using wget command, unpack the downloaded file ( and extract it..

$ wget
$ unzip 

After extracting the file, go to the extracted directory speedtest-cli-master and make the script file executable.

$ cd speedtest-cli-master/
$ chmod 755 

Next, move the executable to /usr/bin folder, so that you don’t need to type the full path everytime.

$ sudo mv /usr/bin/

Testing Internet Connection Speed with speedtest-cli

1. To test Download and Upload speed of your internet connection, run the speedtest-cli command without any argument as shown below.

Test Download Upload Speed in Linux
Test Download Upload Speed in Linux

2. To check the speed result in bytes in place of bits.

$ --bytes
Test Internet Speed in Bytes
Test Internet Speed in Bytes

3. Share your bandwidth speed with your friends or family. You are provided with a link that can be used to download an image.

# --share
Share Internet Speed Results
Share Internet Speed Results

The following picture is a sample speed test result generated using above command.

Speed Test Results
Speed Test Results

4. Don’t need any additional information other than Ping, Download and upload?

$ --simple
Test Ping Download Upload Speed
Test Ping Download Upload Speed

5. List the server based upon physical distance. The distance in km is mentioned.

$ --list
Check Servers
Check Servers

6. The last stage generated a huge list of servers sorted on the basis of distance. How to get desired output? Say I only want to see the server located in Mumbai (India).

$ --list | grep -i Mumbai
Check Nearest Server
Check Nearest Server

7. Test connection speed against a specific server. Use Server Id generated in example 5 and example 6 in above.

$ --server [server ID]
$ --server [5060]              ## Here server ID 5060 is used in the example.
Test Connection Against Server
Test Connection Against Server

8. To check the version number and help of speedtest-cli tool.

$ --version
Check SpeedCli Version
Check SpeedCli Version
$ --help
SpeedCli Help
SpeedCli Help

Note: Latency reported by tool is not its goal and one should not rely on it. The relative latency values output is responsible for server selected to be tested against. CPU and Memory capacity will influence the result to certain extent.


The tool is must for system administrators and developers. A simple script which runs without any issue. I must say that the application is wonderful, lightweight and do what it promises. I disliked for the reason it was using flash, but speedtest-cli gave me a reason to love them.

speedtest_cli is a third party application and should not be used to automatically record the bandwidth speed. is used by millions of users and it is a good idea to Set Your Own Speedtest Mini Server.

That’s all for now, till then stay tuned and connected to Tecmint. Don’t forget to give your valuable feedback in the comments below. Like and share us and help us get spread.

If you liked this article, then do subscribe to email alerts for Linux tutorials. If you have any questions or doubts? do ask for help in the comments section.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

40 thoughts on “How to Test Your Internet Speed Bidirectionally from Command Line Using ‘Speedtest-CLI’ Tool”

  1. This would be more useful if it could be used between two servers on the same internal network; between subnets and over VPN’s and not just “yet another internet speedtest” application.

  2. I noticed that attempting to run:


    …from the terminal after the two packages were installed using ‘apt’, the result was no command found running Linux Mint 18.1). It appears that the correct command is:

    ‘speedtest-cli’ (with a ‘dash’ not an ‘underscore’ and no ‘.py’ at the end)

    The above works fine although I tend to like to see the results in bytes not bits so I added –bytes at the end.

  3. You said it “should not be used to record internet speed automatically”. Why? I’d like to have this scheduled to run regularly and keep a log of my internet speeds to use when addressing poor service with my ISP.

  4. 3. Share your bandwidth speed with your friends or family. You are provided with a link that can be used to download an image.
    in this section, missing the example of the command line :-)

    # –share

    • @Verow,

      Thanks for updating that missing command about sharing network bandwidth usage report, updated in the article..

    • Why do you say that? Mac OS is BSD under the covers. But, you will have to make sure Xcode is already installed first which is a free download from the Mac App store.

      Do this in a Terminal window after you have installed Xcode:

      1. Think of a location where you would want to keep the source files and “cd” into that directory, for example, I keep my sources in ~/src
      2. Download the code from GitHub:

      sudo git clone

      The above may generate a message saying you have to agree to Xcode’s license agreement before being allowed to use Xcode.
      Type in “agree” when prompted.

      3. You will now have a directory titled speedtest-cli; cd into this directory
      4. Install the sources:

      sudo python ./ install

      It should run without any warnings or errors (will get installed in /usr/local/bin).

      5. Now you can run the following for the help screen (usage info):

      speedtest-cli -h

  5. couldn’t install speedtest-cli in centOS 6.7 . Following error occured:

    yum install speedtest-cli
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
    * base:
    * epel:
    * extras:
    * updates:
    No package speedtest-cli available.
    Error: Nothing to do

    • @Spandan,
      There isn’t any speedtest-cli package available from Yum repositories, the only way is to install it from PIP tool as described in this article. So, first install pip package and then do pip to install the speedtest-cli package as shown in this article..


Got something to say? Join the discussion.

Have a question or suggestion? Please leave a comment to start the discussion. Please keep in mind that all comments are moderated and your email address will NOT be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.