Take the 2-minute tour ×

I'm looking for a tool that will test my internet connection bandwidth and create an simple report like speedtest does.

Do you know some program/tool that do this? Something with CentOS packages would be nice.

share|improve this question

6 Answers 6

up vote 3 down vote accepted

ttcp is a simple, possibly too simple, speed test utility.

pchar is another one people cite a lot, I've had bad luck with it, personally.

Here's how I'd use ttcp. You need two machines, each with ttcp (http://playground.sun.com/pub/tcp-impl/ttcp/ttcp.c) compiled on them.

HostA % ./ttcp -r -s -p 9401 

HostB % ./ttcp -s -p 9401 < /boot/vmlinuz

Once you've figured out how to get it to run, try different length files to see how speed varies. Use UDP (-u flag on both reader and sender command line) for even more fun!

share|improve this answer
can you give me an example how to use ttcp? –  Wolfy Jun 27 '11 at 16:25
If I don't have 2 machines? –  Wolfy Jun 27 '11 at 17:04
If you don't have two machines, ttcp is worthless. It just sends a specified number of bytes over TCP or UDP as fast as it cam, and reports how long it took. Too simple, like I wrote above. –  Bruce Ediger Jun 27 '11 at 17:20

I'm just repeating the answers listed on this (deleted?) stackoverflow question: http://stackoverflow.com/questions/426272/how-to-test-internet-connection-speed-from-command-line




git clone https://github.com/sivel/speedtest-cli
cd speedtest-cli 
python2.7 speedtest_cli.py

Then you have the exact style results from speedtest.net with cli.


You could use iperf to test the speed between two machines, since 'iperf' was designed to measure bandwidth.

on machine1 (host, this one will receive)

iperf -s -p 65000

on machine2 (client, this one will upload)

iperf -c [ip of server] -p 65000

Reverse the machines to test the other way (upload->download or vice versa).


It looks like there is a tool available on sourceforge that uses speedtest.net from the terminal.

Terminal speedtest: http://sourceforge.net/projects/tespeed/

share|improve this answer

You might be interested in TeSpeed. It is described as:

If you are looking for tool that is able to test internet connection speed fron Linux terminal, you have found it! :) TeSpeed uses speedtest.net servers to check upload and download rate and it puts that information on charts.


share|improve this answer
I try it, but it doesn't work... –  Wolfy Jun 27 '11 at 19:53
@wolfy, can you give me some more details? error messages perhaps... –  jonyamo Jun 27 '11 at 21:12
when I run it, it only print that it starts testing and quit... no error, no info... maybe something in code is missing... I corrected the full path to speedtest.php, but this doesn't helped... –  Wolfy Jun 28 '11 at 12:42
sounds like it might be dying when it attempts to run curl_init. run "php -m | grep curl" to make sure you have the curl module installed and if not that would be your problem. –  jonyamo Jun 28 '11 at 14:47
I will try and let you know :) –  Wolfy Jun 29 '11 at 6:12

Very basic, but I use a simple shellscript to download a 10MB file from my provider or nearby FTP-server:


wget ftp://ftp.xs4all.nl/pub/test/10mb.bin ; rm 10mb.bin
## debian.unnet.nl is down...
#wget http://debian.unnet.nl/speedtest/10mb.bin ; rm 10mb.bin
#curl -LO http://debian.unnet.nl/speedtest/10mb.bin ; rm 10mb.bin

The output will look like this:

($:~)-> speedcheck.sh 
--2011-06-27 23:36:21--  ftp://ftp.xs4all.nl/pub/test/10mb.bin
           => `10mb.bin'
Resolving ftp.xs4all.nl (ftp.xs4all.nl)...
Connecting to ftp.xs4all.nl (ftp.xs4all.nl)||:21... connected.
Logging in as anonymous ... Logged in!
==> TYPE I ... done.  ==> CWD (1) /pub/test ... done.
==> SIZE 10mb.bin ... 10485760
==> PASV ... done.    ==> RETR 10mb.bin ... done.
Length: 10485760 (10M) (unauthoritative)


2011-06-27 23:36:31 (1.02 MB/s) - `10mb.bin' saved [10485760]

Use wget or curl as shown in the script according to your wishes and try to find a server more close to your region (Slovenia). Most are in NL, but maybe .IT will fit your needs: http://www.filewatcher.com/m/10mb.bin.10485760.0.0.html

share|improve this answer
Thanks for this. Do you know how can I measure my upload? –  Wolfy Jun 28 '11 at 7:28
Try using cURL. Look into the cURL manpage under uploading: cs.sunysb.edu/documentation/curl/index.html and improve / enhance the above script yourself ;-) –  Henk Jun 28 '11 at 7:49

speed testing an internet connection or between two endpoints depends on several factors. Like the window size,jitter,unordered delivery etc. Refer: Internet Speed test through Command line.

share|improve this answer
This would be considered as link only answer. Add more elaborative info from the link to your answer. –  mtk Feb 5 '13 at 7:49


Install Git (APT)

$ sudo apt-get install git-core

Install Git (YUM)

$ sudo yum install git

Clone the Repository from GitHub


Sample Usage and Output

$ ./speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Comcast Cable (x.x.x.x)...
Selecting best server based on ping...
Download: 32.29 Mbit/s
Upload: 5.18 Mbit/s
share|improve this answer
Offtopic, but if somebody has no git installed, wget https://github.com/sivel/speedtest-cli/archive/master.zip seems easier then installing git just to clone. –  manatwork Mar 19 '13 at 9:07

Your Answer


