How to test your connection speed on a VPS or dedicated server (2026) | INTROSERV
EUR
european

EUR

usa

USD

English En
Ex. VAT Ex. VAT 0%

How to test your connection speed on a VPS or dedicated server (2026)

Target audience: Intermediate. You are comfortable with the command line and basic server administration.

Estimated completion time: 20 to 30 minutes.

By the end of this tutorial, you will be able to measure the raw throughput of your server with Speedtest and diagnose the link between your server and a specific remote point with iPerf3.

Introduction

Connection speed questions on a VPS or dedicated server come in two distinct forms. The first is general: how much bandwidth does this server actually push right now. The second is specific: why is the transfer between this server and that particular endpoint slow. These two questions require different tools.

This tutorial covers both levels. Speedtest gives you a quick reading of overall channel throughput in under a minute. iPerf3 measures the path between two known points and is the INTROSERV standard for diagnosing connectivity problems, as defined in the internal manual "Network Connectivity Issue Handling Rules". Understanding which tool answers which question saves time and prevents misleading conclusions.

Prerequisites

Before you begin, make sure you have the following:

  • A VPS or dedicated server running Ubuntu 24.04 LTS, Ubuntu 22.04 LTS, AlmaLinux 9, Rocky Linux 9, Windows Server 2022, or Windows Server 2025
  • A non-root user with sudo privileges on Linux, or an administrator account on Windows
  • Outbound internet access from the server; both tools open outbound connections only and do not require any inbound ports
  • Software installed during the tutorial: Speedtest CLI 1.2.0 and iperf3 3.9 or later from the distribution repositories

No inbound firewall changes are needed. If your server restricts outbound traffic, allow outbound TCP to ports 80 and 443 for Speedtest and to the port of your chosen iPerf3 server for the diagnostic tests.

Part 1: quick throughput check with Speedtest

Speedtest by Ookla measures download bandwidth, upload bandwidth, latency, and packet loss against a nearby public test server. It is the fastest way to get a general picture of the channel.

Warning

Speedtest and similar services connect to third-party servers chosen automatically from a public pool. The result describes your channel in general terms only. Do not use these tools to diagnose a connectivity problem to a specific server. For point-to-point diagnosis, use iPerf3 as described in Part 2.

Installing Speedtest CLI on Ubuntu

Ookla distributes the CLI through its own apt repository. Add the repository:

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash

On Ubuntu 22.04, install the package directly:

sudo apt install speedtest

On Ubuntu 24.04, the Ookla repository publishes its packages under the jammy codename and does not provide a noble entry, so point the repository to jammy before installing. This step is required on 24.04: without it, the install fails with "Unable to locate package speedtest".

sudo sed -i 's/noble/jammy/g' /etc/apt/sources.list.d/ookla_speedtest-cli.list sudo apt update sudo apt install speedtest

Installing Speedtest CLI on AlmaLinux and Rocky Linux

Add the Ookla dnf repository:

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.rpm.sh | sudo bash

Install the package:

sudo dnf install speedtest

Installing Speedtest CLI on Windows Server

Open PowerShell as Administrator. Download and extract the official CLI archive:

Invoke-WebRequest -Uri "https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-win64.zip" -OutFile "$env:TEMP\speedtest.zip" Expand-Archive -Path "$env:TEMP\speedtest.zip" -DestinationPath "C:\Tools\speedtest"

The archive contains speedtest.exe, which runs without installation. Ookla also offers a graphical Speedtest application for Windows; on a server accessed over RDP, the CLI is usually the more practical choice.

Running the test

On Linux, run:

speedtest

On Windows, run from PowerShell:

C:\Tools\speedtest\speedtest.exe

On the first run, the tool asks you to accept the Ookla license and GDPR terms interactively. Confirm them, and the test starts. For a non-interactive or scripted run on either Linux or Windows, append the acceptance flags so the tool does not prompt:

speedtest --accept-license --accept-gdpr

On Windows, add the same flags to speedtest.exe.

A complete run takes about 30 seconds and ends with a summary:

Speedtest by Ookla Server: Example ISP - Example City (id: 12345) ISP: Example Networks Idle Latency: 1.25 ms (jitter: 0.10ms, low: 1.18ms, high: 1.40ms) Download: 940.12 Mbps (data used: 512.3 MB) Upload: 918.47 Mbps (data used: 466.1 MB) Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

The Download and Upload lines show the measured throughput. The Result URL points to a shareable page with the same numbers.

Tip

To test against a specific Speedtest server from the public pool, list nearby servers with speedtest -L and pass the chosen ID with speedtest -s <YOUR_SERVER_ID>. This narrows the randomness but the target is still a third-party server outside your control.

Testing from a browser

When the server hosts a desktop environment, or when you want to check the channel from your own workstation for comparison, two browser services cover the same ground. Speedtest.net runs the full Ookla test with server selection. Fast.com, operated by Netflix, shows a download figure immediately and reveals upload and latency after you select Show more info. Browser results depend on the machine running the browser, so a test from your workstation measures your workstation's channel, not the server's.

Part 2: precise diagnosis with iPerf3

iPerf3 measures the maximum achievable bandwidth between two specific hosts: your server as the client and a known iPerf3 server as the endpoint. Because both ends of the link are fixed, the result describes exactly the path you care about. This is the tool INTROSERV uses for connectivity diagnosis under the internal manual "Network Connectivity Issue Handling Rules", and it is the measurement to attach when you report a network problem.

Installing iPerf3 on Ubuntu

The package is available in the standard repositories:

sudo apt update sudo apt install iperf3

The installer may ask whether to start iperf3 as a daemon. Answer no; the tests in this tutorial run iperf3 as a client only, and a permanently listening daemon is an unnecessary open port.

Installing iPerf3 on AlmaLinux and Rocky Linux

Install from the standard repositories:

sudo dnf install iperf3

Installing iPerf3 on Windows Server

The iPerf3 project does not publish official Windows binaries. The project documentation refers to community builds, available at github and https://files.budman.pw. Download the latest 64-bit archive from either source, extract it, and place the contents in a directory such as C:\Tools\iperf3. The archive contains iperf3.exe together with the libraries it needs; keep them in the same directory.

Verify the binary from PowerShell:

C:\Tools\iperf3\iperf3.exe --version

Expected output:

iperf 3.21 (cJSON 1.7.15)

Running the upload test

The upload test sends data from your server to the remote iPerf3 server. Replace and with the address and port of a public iPerf3 server located near your datacenter.

Info

Public iPerf3 servers near INTROSERV European datacenters that you can use for these tests: Germany/Wolfsburg 62.176.224.217 port 5201, France/Paris 45.147.210.189 port 5200 (port range 5200 to 5240), Netherlands/Naaldwijk 185.182.195.76 port 5201, United Kingdom/London 5.180.211.133 port 5200, Poland/Warsaw 185.246.208.67 port 5201. Pick the one closest to your server. These servers are shared and limit the number of simultaneous clients, so if a test is refused, retry after a short pause or move to the next server in the list. The authoritative list is maintained in the internal manual "Network Connectivity Issue Handling Rules".

iperf3 -c <YOUR_IPERF_SERVER> -p <YOUR_IPERF_PORT> -t 30 -P 10 -i 0

The flags have the following meaning. -c starts iperf3 in client mode against the given server. -p selects the server port. -t 30 runs the test for 30 seconds, long enough to smooth out short fluctuations. -P 10 opens 10 parallel streams, which saturates the link the way real multi-connection traffic does. -i 0 disables intermediate reports, so the output contains only the final summary.

After 30 seconds, the test prints per-stream results and a summary block:

[SUM] 0.00-30.00 sec 3.28 GBytes 940 Mbits/sec sender [SUM] 0.00-30.00 sec 3.27 GBytes 938 Mbits/sec receiver

Read the upload result from the sender row: this is the rate at which your server pushed data to the remote endpoint.

Running the download test

The download test reverses the direction: the remote server sends data to yours. Add the -R flag to the same command:

iperf3 -c <YOUR_IPERF_SERVER> -p <YOUR_IPERF_PORT> -t 30 -P 10 -i 0 -R

-R switches iperf3 to reverse mode. Read the download result from the receiver row of the summary: this is the rate at which your server received data.

Info

Public iPerf3 servers accept a limited number of simultaneous clients. If the connection is refused with "the server is busy running a test", wait a short time and retry, or pick another public server in the same region.

Tip

Run each test two or three times and compare the results. A single low reading can reflect momentary load on the public server rather than a problem on your link. Consistently low numbers across repeated runs and across two different iPerf3 servers are a much stronger signal.

Verifying the installation

Confirm that both tools are present and report their versions.

On Linux:

speedtest --version iperf3 --version

Expected output:

Speedtest by Ookla 1.2.0.84 (ea6b6773cf) Linux/x86_64-linux-musl 5.15.0 x86_64 iperf 3.9 (cJSON 1.7.13)

Exact version strings vary with the distribution release. Any output that prints a version confirms the tool is installed and executable. On Windows, run the same commands with the full paths used earlier.

Reverting changes

If you no longer need the tools, remove them and the added repositories.

On Ubuntu:

sudo apt remove speedtest iperf3 sudo rm /etc/apt/sources.list.d/ookla_speedtest-cli.list sudo apt update

On AlmaLinux and Rocky Linux:

sudo dnf remove speedtest iperf3 sudo rm /etc/yum.repos.d/ookla_speedtest-cli.repo

On Windows Server, delete the extracted directories:

Remove-Item -Recurse -Force "C:\Tools\speedtest" Remove-Item -Recurse -Force "C:\Tools\iperf3"

Conclusion and next steps

You can now answer both connection speed questions with the right instrument. The decision comes down to what you need to know:

Situation Tool
You need a general speed figure for the server channel Speedtest
You are diagnosing a problem down to a specific server iPerf3

For a quick sanity check after provisioning a new INTROSERV VPS or dedicated server, a single Speedtest run is enough. For anything you intend to report as a network problem, run the iPerf3 upload and download tests against a public server near the datacenter and record the sender and receiver figures; these are the numbers the diagnosis procedure in "Network Connectivity Issue Handling Rules" expects. As a next step, consider scheduling periodic iPerf3 runs against a fixed endpoint to build a baseline, which makes genuine degradation visible the moment it starts.

Document Version: 1.
Last Updated: August 2026
Owner: Technical Documentation Team

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA