Speedtest CLI es la versión de línea de comandos de Speedtest by Ookla. Mide la latencia, la velocidad de descarga y de subida y la pérdida de paquetes de tu servidor contra la red de servidores de Speedtest, sin necesidad de entorno gráfico. En este tutorial instalarás el cliente oficial en Ubuntu 24.04 (igual en Debian 12), ejecutarás una prueba, elegirás un servidor de prueba concreto y guardarás los resultados en un formato que puedas comparar más adelante.
Requisitos previos
Para seguir esta guía necesitas:
- Un servidor con Ubuntu 24.04 LTS o Debian 12, x86_64 o arm64, por ejemplo un VPS o un servidor dedicado de CubePath.
- Un usuario con privilegios
sudo. - Salida a Internet por HTTPS (puerto 443) y por el puerto 8080, que usan los servidores de Speedtest.
NotaExiste también un paquete
speedtest-clien los repositorios de Ubuntu, pero es un cliente no oficial escrito en Python que suele dar resultados menos precisos en conexiones rápidas. Esta guía usa el cliente oficial de Ookla, cuyo comando esspeedtest.
Paso 1: Descargar Speedtest CLI
Ookla publica el cliente como un binario estático que funciona en cualquier distribución. Comprueba primero la arquitectura del servidor:
uname -m
x86_64
Descarga el archivo que corresponde a tu arquitectura desde la web oficial de Ookla. Para x86_64:
cd /tmp
curl -fsSLO https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz
Si uname -m devolvió aarch64, descarga en su lugar ookla-speedtest-1.2.0-linux-aarch64.tgz desde la misma ruta. Consulta en https://www.speedtest.net/apps/cli si hay una versión más reciente y ajusta el nombre del archivo.
Paso 2: Instalar el binario
Extrae solo el ejecutable del archivo y cópialo a /usr/local/bin con permisos de ejecución:
tar -xzf ookla-speedtest-1.2.0-linux-x86_64.tgz speedtest
sudo install -m 0755 speedtest /usr/local/bin/speedtest
Comprueba que el comando está disponible:
speedtest --version
Speedtest by Ookla 1.2.0.84 ...
Puedes borrar los archivos descargados:
rm -f /tmp/ookla-speedtest-1.2.0-linux-x86_64.tgz /tmp/speedtest
Paso 3: Ejecutar la primera prueba
La primera vez, el cliente pide aceptar la licencia de Ookla y el aviso de privacidad (GDPR). Puedes aceptarlos directamente con estas opciones, que también sirven para usarlo en scripts:
speedtest --accept-license --accept-gdpr
La aceptación se guarda en ~/.config/ookla/, así que las siguientes veces basta con speedtest. La prueba tarda unos 20 a 30 segundos:
Speedtest by Ookla
Server: Adamo - Madrid (id: 1680)
ISP: CubePath
Idle Latency: 8.92 ms (jitter: 0.10ms, low: 8.82ms, high: 8.98ms)
Download: 938.45 Mbps (data used: 1.1 GB)
9.01 ms (jitter: 1.95ms, low: 8.86ms, high: 31.79ms)
Upload: 937.72 Mbps (data used: 819.2 MB)
12.62 ms (jitter: 0.43ms, low: 8.84ms, high: 13.52ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/068ae5b7-8013-41f3-a6c3-5c0b8be35aad
Cómo leer el resultado:
- Server: el servidor de Speedtest contra el que se ha medido. El cliente elige por defecto uno cercano con baja latencia.
- Idle Latency: la latencia con la conexión en reposo. Las dos líneas bajo
DownloadyUploadson la latencia con la conexión cargada. - Download / Upload: el ancho de banda medido en cada sentido.
- Packet Loss: el porcentaje de paquetes perdidos. En un servidor sano debería ser
0.0%. - Result URL: un enlace público al resultado, útil para compartirlo.
Paso 4: Elegir el servidor de prueba
El resultado depende mucho del servidor remoto: uno saturado o lejano da cifras bajas aunque tu servidor esté bien. Lista los servidores cercanos:
speedtest -L
Closest servers:
ID Name Location Country
==============================================================================
1680 Adamo Madrid Spain
14979 Orange Spain Madrid Spain
...
Lanza la prueba contra uno concreto con su ID:
speedtest -s 14979
Repetir la medición contra dos o tres servidores distintos ayuda a distinguir un problema de tu servidor de uno del servidor remoto. Para ver por qué el cliente eligió un servidor en la prueba automática, añade --selection-details.
Paso 5: Guardar los resultados en JSON
Para comparar mediciones a lo largo del tiempo o procesarlas con otras herramientas, usa el formato JSON. -p no desactiva la barra de progreso:
speedtest -f json-pretty -p no
Extrae solo los valores que te interesan con jq (instálalo con sudo apt install jq). Los campos bandwidth están en bytes por segundo, así que se multiplican por 8 y se dividen entre 1.000.000 para obtener Mbps:
speedtest -f json -p no | jq '{ping: .ping.latency, down_mbps: (.download.bandwidth * 8 / 1000000), up_mbps: (.upload.bandwidth * 8 / 1000000), loss: .packetLoss}'
{
"ping": 8.921,
"down_mbps": 938.451,
"up_mbps": 937.72,
"loss": 0
}
Otros formatos disponibles con -f son csv, tsv, jsonl y human-readable (el predeterminado).
Solución de problemas
Cannot read from socketoConfiguration - Couldn't resolve host name. El servidor no tiene salida a Internet o no resuelve DNS. Comprueba conping -c 3 1.1.1.1ygetent hosts www.speedtest.net, y revisa las reglas de salida de tu cortafuegos.- Velocidades muy por debajo de lo contratado. Repite la prueba contra otros servidores (paso 4) y en otro momento del día. Comprueba también que ningún proceso está usando la red mientras mides, por ejemplo con
sudo apt install iftopysudo iftop. speedtest: command not found. Revisa que/usr/local/bin/speedtestexiste y es ejecutable. Si instalaste antes el paquete no oficialspeedtest-cli, su comando esspeedtest-cliy usa otras opciones.
Conclusión
Tienes el cliente oficial de Speedtest instalado y sabes medir contra servidores concretos y guardar los resultados en JSON. Si los resultados son bajos de forma persistente contra varios servidores, abre un ticket en el soporte de CubePath e incluye los enlaces Result URL de las pruebas para que podamos revisarlo. Como siguiente paso, puedes medir el rendimiento entre dos servidores propios con iperf3 o comprobar la ruta hasta un destino con mtr.
