Cómo desplegar tu propio servidor de Speedtest con Docker e iPerf3
Si necesitas medir el rendimiento de tu red LAN o Wi-Fi de forma fiable, iPerf3 es el estándar de la industria. Sin embargo, instalar binarios y librerías en tu sistema operativo principal puede ser tedioso.
La solución más limpia y rápida es usar Docker. En este artículo veremos cómo levantar un servidor iPerf3 en segundos utilizando un archivo docker-compose.
Requisitos Previos
- Docker y Docker Compose instalados en la máquina que actuará como servidor (puede ser una Raspberry Pi, un NAS, un servidor Linux o incluso Windows con WSL).
- Conectividad de red entre el cliente (tu PC) y este servidor.
Paso 1: Crear el archivo de configuración
El «corazón» de este despliegue es el archivo docker-compose.yml. Este archivo le dice a Docker qué imagen descargar y cómo configurar la red.
Crea una carpeta nueva en tu servidor y dentro crea un archivo llamado docker-compose.yml. Pega el siguiente contenido:
YAML
version: '3.8'
services:
iperf3-server:
image: networkstatic/iperf3
container_name: iperf3-server
ports:
# Mapeo de puertos: Host : Contenedor
- "5201:5201/tcp"
- "5201:5201/udp"
# El comando '-s' inicia iPerf en modo Servidor
command: iperf3 -s
¿Qué hace esta configuración?
image: networkstatic/iperf3: Utiliza una imagen ligera y popular mantenida por la comunidad.ports: Esta es la parte clave. Estamos «puenteando» el puerto 5201 de tu máquina física (Host) al puerto 5201 del contenedor. Hacemos esto tanto para TCP como para UDP, asegurando que puedas probar ambos protocolos.command: iperf3 -s: Ejecuta el binario en modo «Server» (-s) automáticamente al iniciar.
Paso 2: Desplegar el servidor
Abre tu terminal, navega hasta la carpeta donde guardaste el archivo y ejecuta:
docker-compose up -d
up: Crea e inicia los contenedores.-d(Detached): Ejecuta el contenedor en segundo plano para que no se cierre si cierras la terminal.
Verificación
Para asegurarte de que todo está correcto, ejecuta docker ps. Deberías ver el contenedor con el estado Up:
| CONTAINER ID | IMAGE | STATUS | PORTS | NAMES |
| a1b2c3d4… | networkstatic/iperf3 | Up 1 minute | 0.0.0.0:5201->5201/tcp/udp | iperf3-server |
Paso 3: Realizar la prueba (Cliente)
Ahora que tu contenedor está escuchando en el puerto 5201 de tu servidor, ve a otra computadora (el cliente).
Supongamos que la IP de tu servidor Docker es 192.168.1.200.
Prueba estándar (TCP – Velocidad pura):
iperf3 -c 192.168.1.200
Prueba de estrés (UDP – Jitter y pérdida de paquetes):
Esta prueba es ideal para verificar la calidad de llamadas VoIP o Gaming.
iperf3 -c 192.168.1.200 -u -b 100M
(Aquí -u indica UDP y -b 100M fuerza un ancho de banda de 100 Megas).
Paso 4: Mantenimiento y Logs
Una ventaja de Docker es que puedes ver qué está pasando dentro del servidor sin entrar en él.
Para ver quién se está conectando (Logs en tiempo real):
docker-compose logs -f
Verás las líneas de conexión «Accepted connection from…» cada vez que lances una prueba.
Para detener y borrar el servidor:
docker-compose down
¿Por qué usar este método?
Al usar Docker, si el proceso de iPerf se cuelga (algo raro, pero posible), Docker puede reiniciarlo automáticamente si añades la línea restart: always a tu YAML. Además, mantienes tu sistema operativo base limpio de instalaciones y dependencias.
iPerf – Download iPerf3 and original iPerf pre-compiled binaries

Deja una respuesta