Como testar a velocidade da internet do servidor Linux pelo terminal com o Speedtest CLI oficial da Ookla ou o speedtest-cli, e como ler o resultado.
Servidor não tem navegador, então o teste de velocidade é feito pelo terminal. Existem duas ferramentas com nomes parecidos: o Speedtest CLI, programa oficial da Ookla (comando speedtest), e o speedtest-cli, um script em Python feito pela comunidade. Prefira o oficial: ele mede melhor conexões rápidas e mostra perda de pacotes.
speedtest-cli também cria um comando chamado speedtest e conflita com o da Ookla. Se já tiver o antigo, remova com sudo apt remove speedtest-cli ou sudo dnf remove speedtest-cli.Como instalar o Speedtest CLI oficial
AlmaLinux e Rocky Linux 8 e 9
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.rpm.sh | sudo bash
sudo dnf install speedtest
Ubuntu 22.04 e Debian 12
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt install speedtest
Ubuntu 24.04 e qualquer outro Linux
O repositório da Ookla ainda não tem pacote para o Ubuntu 24.04. Use o binário oficial, que funciona em qualquer distribuição:
curl -LO https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz
tar xzf ookla-speedtest-1.2.0-linux-x86_64.tgz speedtest
sudo install -m 755 speedtest /usr/local/bin/speedtest
Em servidores ARM, troque x86_64 por aarch64 no nome do arquivo.
Como rodar o teste
- Rode o primeiro teste aceitando a licença. Na primeira vez o programa pede para aceitar os termos; as opções abaixo fazem isso sem perguntar:
speedtest --accept-license --accept-gdpr - Leia o resultado. O programa escolhe sozinho um servidor próximo e mostra algo assim:
Download e Upload são as velocidades, Latency é o tempo de resposta e Packet Loss deve ficar em 0%. O Result URL é um link para enviar ao suporte.Server: Provedor Exemplo - Sao Paulo (id: 12345) ISP: Datacenter Exemplo Idle Latency: 2.10 ms (jitter: 0.08ms, low: 2.02ms, high: 2.25ms) Download: 938.40 Mbps (data used: 1.0 GB) Upload: 935.12 Mbps (data used: 1.1 GB) Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/... - Escolha um servidor de teste específico. Liste os mais próximos e repita o teste com o
idde um deles:
Prefira servidores grandes (operadoras e datacenters); servidores pequenos não conseguem entregar a velocidade de uma porta de 1 Gbps ou mais.speedtest -L speedtest -s 12345
speedtest -f json ou speedtest -f csv.Alternativa: speedtest-cli (Python)
Está nos repositórios oficiais do Ubuntu e do Debian e no EPEL do AlmaLinux e do Rocky. Funciona, mas o projeto não recebe atualização desde 2021 e costuma medir abaixo do real em conexões de 1 Gbps ou mais.
sudo apt install speedtest-cli # Ubuntu e Debian
sudo dnf install speedtest-cli # AlmaLinux e Rocky, com EPEL ativo
speedtest-cli --simple
speedtest-cli --list | head
speedtest-cli --server 12345
Como interpretar o resultado
- Porta de 1 Gbps entrega cerca de 940 Mbps. A diferença é o cabeçalho dos pacotes TCP/IP; isso não é perda.
- Um teste só pode mentir para baixo. Num link de 10 Gbps, um único teste pode parar perto de 1 Gbps porque o servidor do outro lado vira o gargalo. Rode testes em paralelo contra servidores diferentes e meça o total na placa de rede (veja abaixo).
- A velocidade da placa não é a banda contratada. O
ethtool eth0mostra a velocidade negociada com o switch (por exemplo, 10000Mb/s), não o quanto o provedor libera. - Resultado varia com o destino. Teste contra servidores no Brasil e fora dele; rotas internacionais costumam ter latência e velocidade diferentes.
Como medir o tráfego real na placa de rede
Descubra o nome da interface com ip -br link (por exemplo, eth0, ens18 ou eno1). Em um terminal, deixe rodando o medidor abaixo, que mostra a cada segundo quanto está entrando (RX) e saindo (TX):
IF=eth0
while sleep 1; do
R1=$R2; T1=$T2
R2=$(cat /sys/class/net/$IF/statistics/rx_bytes)
T2=$(cat /sys/class/net/$IF/statistics/tx_bytes)
[ -n "$R1" ] && echo "RX $(( (R2-R1)*8/1000000 )) Mbps TX $(( (T2-T1)*8/1000000 )) Mbps"
done
Em outro terminal, dispare três testes ao mesmo tempo contra servidores diferentes (troque os ids pelos do speedtest -L):
for id in 11111 22222 33333; do speedtest -s $id -p no > /tmp/st-$id.txt & done; wait; cat /tmp/st-*.txt
O pico que aparece no medidor é a banda que o servidor consegue usar. Pare o medidor com Ctrl+C.
Problemas comuns
Cannot open socket ou Timeout occurred in connect
O firewall do servidor está barrando a saída. Servidores com CSF costumam restringir as portas de saída na opção TCP_OUT; os servidores do Speedtest usam a porta 8080. Teste com outro servidor (speedtest -s) ou libere a saída temporariamente.
The repository ... noble Release does not have a Release file
Aparece no apt update do Ubuntu 24.04 depois de rodar o script da Ookla: ele adiciona um repositório que ainda não existe para essa versão. Apague o arquivo com sudo rm /etc/apt/sources.list.d/ookla_speedtest-cli.list e instale pelo binário, como mostrado acima.
Velocidade muito abaixo do contratado
Repita com dois ou três servidores grandes e em horários diferentes. Se continuar baixo, meça também a rota com um teste de MTR e envie os resultados ao suporte. Para testar entre dois servidores seus, sem depender de terceiros, use o iperf3.