Measuring internet speed isn’t just about running a test on a website. Many users encounter inaccurate results that distort the actual situation. This guide will help you perform a speed test correctly, explain what affects measurements, and provide step-by-step instructions for all popular operating systems. We will also discuss why checking Speedtest servers is important and how they can influence the results.
Speedtest Server
Not every Speedtest server can handle high speeds. For example, if your internet supports up to 1 Gbps but the test server is limited to 100 Mbps, the results will be incorrect.
Why Not Use Third-Party Solutions or Those in Standard Repositories?
There are many solutions available in open sources, such as speedtest-cli.
However, the last commit for this tool was over five years ago. Additionally, utilities available in standard repositories (e.g., Debian-based systems) are outdated.
Since Speedtest’s server infrastructure changes dynamically, these solutions often lack an up-to-date server list and tend to show incorrect results.
For this reason, we recommend either connecting repositories from the official Speedtest website or downloading the appropriate utility for your architecture.
Always use only official and verified Speedtest servers for testing.
Network and Routing
The route quality to the server (e.g., through a different country or even a continent) can impact ping and speed.
Your geographical location is a key factor since the distance to the target server is essentially a chain of internet routers and cables. Each link in this chain takes time to traverse, and the longer the chain, the lower the speed results.
It is obvious that the maximum speed value is obtained from a test server closest to you, while the minimum is recorded when the test server is on the other side of the world.
For example, if you test your speed from China to a server in the U.S., the results can differ significantly from standard values.
If you use a server as a VPN, your local network (Wi-Fi or wired connection) plays a crucial role. Wi-Fi often limits bandwidth. The VPN protocol you connect through is also key to speed measurement since many VPN protocols are currently restricted in Russia, reducing connection speed.
Server Performance
A high CPU load or lack of RAM on the test server can lower test results. A slow disk can also become a bottleneck, especially under heavy loads.
Parallel Tasks
Background downloads or updates may consume a significant portion of your server’s internet bandwidth.
Time of Day
During peak hours, backbone channels may be congested. Run tests at different times for comparison.
VPN Impact on Speed
If you use a VPN on your personal computer (e.g., Windows), connection speed may drop significantly due to additional data encryption and routing through remote servers. This increases latency and reduces bandwidth.
Additionally, many VPN services impose speed limits, especially free versions. Therefore, before testing, it is recommended to disable VPN to obtain more accurate results.
Using Mobile Networks
Many users test internet speed on their phones but forget to enable Wi-Fi. As a result, the test runs via a mobile network, leading to different speed results than expected.
Make sure your phone is connected to Wi-Fi before testing if you want to check your home or office internet speed.
Speedtest CLI is a tool from Ookla, the developer of the popularSpeedtest website. It provides the most accurate results by using official servers.
For Ubuntu 24:
sudo apt-get install curl
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo sed -i 's/noble/jammy/' /etc/apt/sources.list.d/ookla_speedtest-cli.list
sudo apt update
sudo apt-get install speedtest
Step-by-Step Guide to Speed Measurement
1. Download and install Speedtest as shown above.
2. Run the command:
speedtest
3. To select a specific server, execute:
speedtest --servers
⚠ Note: Sometimes Speedtest may display an incorrect server location due to delayed IP database updates!
To test with a specific server, use:
speedtest -s [SERVER_ID]
iperf3 is a powerful tool for network bandwidth testing. It allows performance evaluation between two devices using a client-server architecture.
Install iperf3 via the package manager:
apt-get install iperf3
Start the iperf3 server on another device (you can use public iperf3 servers):
iperf3 -s
Run the client on your server, specifying the iperf3 server's IP address:
iperf3 -c [SERVER_IP]
To test in both directions, use the -R flag:
iperf3 -c [SERVER_IP] -R
Testing upstream bandwidth from client to server with different parameters:
iperf3 -c [SERVER_IP] -u -w 1m -t 10 -l 1100 -b 1000M -P 5
Testing downstream speed from server to client using -R:
iperf3 -c [SERVER_IP] -u -w 1m -t 10 -l 1100 -b 1000M -P 5 -R
Save test results in JSON format:
iperf3 -c [SERVER_IP] --logfile log.txt -J
This method also works for any OS with a browser:
1. Open a browser and go toSpeedtest by Ookla.
2. Click "Go" and wait for the test to finish.
If you plan to check speed regularly, we recommend downloading a dedicated application. For Windows, it is available in the Microsoft Store.
Using Speedtest is more than just running a browser-based test. Accurate speed measurement requires considering multiple factors, from servers to device condition. Follow this guide to minimize errors and obtain the most precise results.
You can also use iperf3 for a detailed network performance analysis, especially in complex scenarios.
If you still experience issues, please create a support ticket with all speed test screenshots. Additionally, provide results from the WinMTR utility, which you can find at the following links: