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 Python
Est. reading time 2m
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:
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 pytho3

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

Step 3: Check the Internet speed

Simply type the following command:
$ ./speedtest-cli
$ 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

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:


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

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.


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.

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 6 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersdf duf ncdu pydf
File Managementcat cp mkdir tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Modern utilitiesbat exa
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg glances gtop jobs killall kill pidof pstree pwdx time vtop
Searchingag grep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
6 comments… add one

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum