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.


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!

| 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: https://stackoverflow.com/questions/426272/how-to-test-internet-connection-speed-from-command-line


wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip


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/

| 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.


| improve this answer | |
  • I try it, but it doesn't work... – Wolfy Jun 27 '11 at 19:53
  • 1
    @wolfy, can you give me some more details? error messages perhaps... – J.C. Yamokoski 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
  • 1
    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. – J.C. Yamokoski Jun 28 '11 at 14:47
  • 1
    It has been updated and moved to Github. github.com/Janhouse/tespeed – Janhouse Sep 24 '12 at 4:03

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!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/test ... done.
==> SIZE 10mb.bin ... 10485760
==> PASV ... done.    ==> RETR 10mb.bin ... done.
Length: 10485760 (10M) (unauthoritative)

100%[===================================================>] 10,485,760  1.09M/s   in 9.8s    

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

| 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

You can also try http://dl.getipaddr.net

They use curl (which is a well known command line utility) to run a speed test.

The code is published on GitHub as well. In short,

wget https://raw.github.com/blackdotsh/curl-speedtest/master/speedtest.sh && chmod u+x speedtest.sh && bash speedtest.sh

| improve this answer | |

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.

| 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

I recommend the speedtest-cli tool for this. I created a blog post (Measure Internet Connection Speed from the Linux Command Line) that goes into detail of downloading, installing and usage of it.

Install Git (APT)

$ sudo apt-get install git-core

Install Git (YUM)

$ sudo yum install git

Clone the Repository from GitHub

$ git clone https://github.com/sivel/speedtest-cli.git

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...
Hosted by FiberCloud, Inc (Seattle, WA) [12.03 km]: 44.028 ms
Testing download speed........................................
Download: 32.29 Mbit/s
Testing upload speed..................................................
Upload: 5.18 Mbit/s
| 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

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.