Yet another unofficial speedtest.net client cli interface
It supports the new (undocumented) raw TCP protocol for better accuracy.
-
Best server discovery based on speed and distance from you.
-
Line type discovery to select the best test profile based on your line speed.
-
Aggressive multi-threading program in order to saturate your bandwidth quickly.
-
Test supported: Ping / Jitter / Download speed / Upload speed / Packet loss (UDP).
-
Provide a URL to the speedtest.net share results image using option --share
-
Network interface binding support - specify which network interface to use for testing (e.g., eth0, tun0, wg0)
- A modern C++ compiler
- cmake
- libcurl
- libssl
- libxml2
$ brew install cmake
$ cd cmake_build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make install
$ sudo apt-get install build-essential libcurl4-openssl-dev libxml2-dev libssl-dev cmake
$ git clone https://github.com/lmc999/SpeedTest
$ cd SpeedTest
$ cmake -DCMAKE_BUILD_TYPE=Release .
$ sudo make install
$ sudo zypper install cmake gcc-c++ libcurl-devel libxml2-devel libopenssl-devel git
$ git clone https://github.com/lmc999/SpeedTest
$ cd SpeedTest
$ cmake -DCMAKE_BUILD_TYPE=Release .
$ sudo make install
$ ./SpeedTest --help
SpeedTest++ version 1.15
Speedtest.net command line interface
Info: https://github.com/taganaka/SpeedTest
Author: Francesco Laurita <[email protected]>
Usage: ./SpeedTest [--latency] [--quality] [--download] [--upload] [--share] [--help]
[--test-server host:port] [--interface interface] [--output verbose|text|json]
optional arguments:
--help Show this message and exit
--latency Perform latency test only
--quality Perform quality test only. It includes latency test
--download Perform download test only. It includes latency test
--upload Perform upload test only. It includes latency test
--share Generate and provide a URL to the speedtest.net share results image
--insecure Skip SSL certificate verify (Useful for Embedded devices)
--test-server host:port Run speed test against a specific server
--quality-server host:port Run line quality test against a specific server
--interface interface Bind to specified network interface (e.g., tun0, eth0)
--output verbose|text|json Set output type. Default: verbose
# Run a complete speed test
./SpeedTest
# Test using a specific network interface (requires root/sudo)
sudo ./SpeedTest --interface tun0
# Test download speed only through VPN interface
sudo ./SpeedTest --download --interface wg0
# Test with JSON output through specific interface
sudo ./SpeedTest --interface eth1 --output json
# Test latency only through tailscale
sudo ./SpeedTest --latency --interface tailscale0Note: The --interface option requires root privileges (or CAP_NET_RAW capability) to bind to a specific network interface.
SpeedTest++ is available as open source program under the terms of the MIT License.