How To Install Speedtest-cli On a CentOS/RHEL/Fedora Linux To Check Internet Speed - nixCraft
See all Sun CentOS Linux related FAQs
I do not want to use Adobe flash based speed testing site due to security concern on my desktop. How do I install Speedtest-cli on a CentOS Linux or Fedora Linux or Red Hat Enterise Linux (RHEL) for checking the Internet speed?

Tutorial details
Difficulty level Easy
Root privileges Yes
Requirements Linux with Python
Est. reading time 3 minutes
Adobe Flash vulnerabilities are a major security issue for Linux users and speedtest.net use Adobe Flash. But, you can check the Internet speed with Python based CLI tool called Speedtest-cli. In this quick tutorial you will learn how to install speedtest-cli on a CentOS/RHE/Fedora/Scientific Linux desktop server or or laptop computer.

Install Speedtest-cli on a Linux

The speedtest-cli written in Python. So make sure Python installed and working correctly. Here is how to find out Python version:
python --version
python3 --version
lsb_release -a

How to install speedtest-cli on a Linux

Step 1: Install python

Type the following yum command to install Python on a CentOS/RHEL/Scientific Linux:
$ sudo yum install python
CentOS / RHEL 8 user type the following command to install Python 3 or 2:
$ sudo yum install python3
$ sudo yum install python2

Run the following dnf command to install Python on a Fedora Linux v22+:
$ sudo dnf install python
$ sudo dnf install python3

Step 2: Download speedtest_cli.py

Type the following wget command to grab the speedtest_cli.py client:
$ wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
$ chmod +x speedtest-cli

Fig.01: Grab speedtest_cli.py

Fig.01: Grab speedtest_cli.py

Step 3: Check the Internet speed

Simply type the following command:
$ ./speedtest-cli
OR
$ python speedtest-cli
Sample outputs:

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from nixcraft Dutch Holdings BV (5.151.xx.yyy)...
Selecting best server based on latency...
Hosted by SoftLayer Technologies, Inc. (Amsterdam) [6.45 km]: 2.317 ms
Testing download speed........................................
Download: 925.88 Mbit/s
Testing upload speed..................................................
Upload: 105.69 Mbit/s

To see speed values in bytes instead of bits pass the --bytes option:
$ ./speedtest-cli --bytes
To generate and provide a URL to the speedtest.net share results image pass the --share option:
$ ./speedtest-cli --share
Of course, you can combine both the options:
$ ./speedtest-cli --share --bytes
Sample outputs:

Gif.01: Speedtest_cli.py in action

Gif.01: Speedtest_cli.py in action

How do I specify a server ID to test against?

First, grab a server list, enter:
$ wget http://www.speedtest.net/speedtest-servers.php
To view a server ID, enter:
$ more speedtest-servers.php
To search a server ID, enter:
$ grep 'city-name' speedtest-servers.php
$ grep 'country-name' speedtest-servers.php
$ grep 'Tampa, FL' speedtest-servers.php

<server url="http://speedtest1.hivelocity.net/speedtest/upload.php" lat="27.9709" lon="-82.4646" name="Tampa, FL" country="United States" cc="US" sponsor="Hivelocity Hosting" id="2137"  host="speedtest1.hivelocity.net:8080" />
<server url="http://speedtestnet.rapidsys.com/speedtest/upload.php" lat="27.9709" lon="-82.4646" name="Tampa, FL" country="United States" cc="US" sponsor="Rapid Systems" id="1296"  host="speedtestnet.rapidsys.com:8080" />

OR just display a server ID:
$ grep 'Tampa, FL' speedtest-servers.php | egrep -o 'id="[0-9]{4}"'
Sample outputs:

id="2137"
id="1296"

Next use the server ID 2137:
$ ./speedtest-cli --server 2137
Sample outputs:

Fig.02: speedtest-cli in action

Fig.02: speedtest-cli in action

Not a fan of speedtest.net?

No worries. Try wget, lftp or specilized tool like iperf on a Linux to test the Internet or Intranet speed from the command line.

Concolusion

You learned how to install speedtest-cli command line interface for testing internet bandwidth using speedtest.net on a CentOS/RHEL/Fedora Linux. For more information see this page here.

🥺 Was this helpful? Please add a comment to show your appreciation or feedback.

nixCrat Tux Pixel Penguin
Hi! 🤠
I'm Vivek Gite, and I write about Linux, macOS, Unix, IT, programming, infosec, and open source. Subscribe to my RSS feed or email newsletter for updates.

6 comments… add one

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre> for code samples. Your comment will appear only after approval by the site admin.