Comprobación de la velocidad de conexión con iperf

Comprobación de la velocidad de conexión con iperf

iperf es una herramienta poderosa para probar el ancho de banda de la red, que permite medir la velocidad de transferencia de datos entre dos dispositivos. Es ampliamente utilizada por administradores de sistemas e ingenieros para diagnosticar problemas de red y evaluar el rendimiento de la conexión. En este artículo, exploraremos cómo instalar iperf, cómo usarlo y cómo configurar correctamente un firewall para su funcionamiento.

Instalación de iperf

Antes de comenzar, es necesario instalar iperf en ambos dispositivos: el servidor (que recibe el tráfico) y el cliente (que envía el tráfico). Existen dos versiones populares: iperf2 e iperf3. Recomendamos usar iperf3, ya que está activamente soportada y ofrece funciones mejoradas.

Instalación en Linux

  • Ubuntu/Debian:

    sudo apt update
    sudo apt install iperf3
  • CentOS/RHEL:

    sudo yum install iperf3

Instalación en Windows

  1. Descarga iperf3 desde el sitio web oficial (por ejemplo, https://iperf.fr/)
  2. Descomprime el archivo en una carpeta conveniente (por ejemplo, C:\iperf).
  3. Añade la ruta de la carpeta a la variable de entorno PATH para facilitar su ejecución desde la línea de comandos.

Instalación en macOS

  • A través de Homebrew:

    brew install iperf3

Tras la instalación, verifica la versión para asegurarte de que la herramienta funciona:

iperf3 --version

¿Cómo funciona iperf?

iperf opera bajo un modelo cliente-servidor:

  • Servidor: Se ejecuta en un dispositivo y espera conexiones entrantes.
  • Cliente: Se conecta al servidor y envía datos para medir la velocidad.

Por defecto, iperf3 utiliza el puerto TCP 5201 (iperf2 usa el 5001). Puedes cambiar el puerto con la opción -p.

Configuración del firewall para iperf

Para que iperf funcione correctamente, asegúrate de que el firewall de tu dispositivo no bloquee las conexiones en los puertos que utiliza iperf (por defecto, el puerto TCP 5201, pero puedes especificar otro con -p). A continuación, se presentan instrucciones para configurar el firewall en diferentes sistemas operativos.

Windows

  1. Abre la configuración del firewall:

    • Presiona Win + R, escribe control y selecciona "Firewall de Windows Defender".
    • Ve a "Permitir una aplicación o característica a través del Firewall de Windows Defender".
  2. Añade una regla para iperf:

    • Haz clic en "Permitir otra aplicación", luego en "Examinar" y selecciona el archivo iperf3.exe.
    • Permite conexiones entrantes y salientes para redes privadas y públicas.
  3. Crea una regla para el puerto (método alternativo):

    • En "Configuración avanzada", selecciona "Reglas de entrada" → "Nueva regla".
    • Elige "Puerto", especifica TCP y el puerto (por ejemplo, 5201), luego permite la conexión.
    • Repite para conexiones salientes si es necesario.

Linux

Dependiendo de la distribución, se utilizan diferentes herramientas de gestión de firewall:

  • Para ufw (Ubuntu, Debian):

    sudo ufw allow 5201/tcp
    sudo ufw status # Verificar estado
  • Para firewalld (CentOS, RHEL):

    sudo firewall-cmd --add-port=5201/tcp --permanent
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-ports # Verificar puertos abiertos
  • Para iptables (configuración manual):

    sudo iptables -A INPUT -p tcp --dport 5201 -j ACCEPT
    sudo iptables -A OUTPUT -p tcp --sport 5201 -j ACCEPT

macOS

  1. Abre la configuración del firewall:

    • Ve a "Configuración del Sistema" → "Seguridad y Privacidad" → pestaña "Firewall".
    • Asegúrate de que el firewall esté activado.
  2. Añade una excepción:

    • Haz clic en "Opciones de Firewall" → "+" y añade la aplicación iperf3.
    • Permite conexiones entrantes.
  3. A través del terminal (alternativa):

    echo "pass in proto tcp from any to any port 5201" | sudo pfctl -f -
    sudo pfctl -e # Activar firewall

Recomendaciones generales

  • Asegúrate de que el puerto usado en el comando iperf (por ejemplo, iperf3 -s -p 5201) coincida con el puerto abierto en el firewall.
  • Usa netstat o ss (por ejemplo, ss -tuln | grep 5201) para verificar que el puerto esté en escucha.
  • Si realizas pruebas a través de Internet, configura el firewall del router o del servidor en la nube.

Uso de iperf

Iniciar el servidor

En el dispositivo que actuará como servidor, ejecuta:

iperf3 -s

Verás un mensaje indicando que el servidor está en marcha y escuchando en el puerto 5201.

Iniciar el cliente

En el segundo dispositivo (cliente), especifica la dirección IP del servidor:

iperf3 -c 192.168.1.100
  • -c: Modo cliente.
  • 192.168.1.100: Sustituye por la dirección IP de tu servidor.

Por defecto, la prueba dura 10 segundos. Los resultados mostrarán la velocidad de transferencia de datos en megabits por segundo (Mbps).

Pruebas con un servidor público

Si no puedes ejecutar tu propio servidor, puedes usar servidores públicos de iperf. Por ejemplo, el servidor de Bouygues Telecom:

iperf3 -c bouygues.iperf.fr

Este comando se conecta al servidor público bouygues.iperf.fr (puerto predeterminado 5201) y mide la velocidad entre tu dispositivo y el servidor. Ten en cuenta que la disponibilidad de servidores públicos puede variar y los resultados dependen de tu conexión a Internet.

Opciones útiles

  • -t <tiempo>: Duración de la prueba en segundos (por ejemplo, -t 30).
  • -p <puerto>: Especificar puerto (por ejemplo, -p 5001).
  • -u: Usar UDP en lugar de TCP.
  • -b <velocidad>: Limitar el ancho de banda (por ejemplo, -b 10M para 10 Mbps).
  • -R: Probar la dirección inversa (del servidor al cliente).

Ejemplo de prueba UDP:

iperf3 -c 192.168.1.100 -u -b 100M

Interpretación de resultados

Al finalizar la prueba, iperf3 muestra una tabla con los resultados:

  • Interval: Intervalo de tiempo.
  • Transfer: Cantidad de datos transferidos.
  • Bandwidth: Ancho de banda en Mbps.

Ejemplo de salida para una prueba local:

[  5]   0.00-10.00  sec  1.13 GBytes  970 Mbits/sec

Esto indica que se transfirieron 1.13 GB en 10 segundos a una velocidad promedio de 970 Mbps.

Ejemplo de salida para una prueba con el servidor público bouygues.iperf.fr:

iperf3 -c bouygues.iperf.fr
Connecting to host bouygues.iperf.fr, port 5201
[ 4] local 192.168.0.47 port 56396 connected to 89.84.1.222 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[ 4]   0.00-1.00   sec  608 KBytes  4.98 Mbits/sec  0     48.1 KBytes
[ 4]   1.00-2.00   sec  1.24 MBytes  10.4 Mbits/sec  0     80.6 KBytes
[ 4]   2.00-3.00   sec  1.62 MBytes  13.6 Mbits/sec  0     120 KBytes
[ 4]   3.00-4.00   sec  2.11 MBytes  17.7 Mbits/sec  0     151 KBytes
[ 4]   4.00-5.00   sec  2.92 MBytes  24.5 Mbits/sec  0     173 KBytes
[ 4]   5.00-6.00   sec  2.98 MBytes  25.0 Mbits/sec  0     191 KBytes
[ 4]   6.00-7.00   sec  3.42 MBytes  28.7 Mbits/sec  0     212 KBytes
[ 4]   7.00-8.00   sec  1.30 MBytes  10.9 Mbits/sec  0     212 KBytes
[ 4]   8.00-9.00   sec  445 KBytes  3.65 Mbits/sec  1     212 KBytes
[ 4]   9.00-10.00  sec  891 KBytes  7.30 Mbits/sec  0     212 KBytes
[ ID] Interval           Transfer     Bandwidth       Retr
[ 4]   0.00-10.00  sec  17.5 MBytes  14.7 Mbits/sec  1     sender
[ 4]   0.00-10.00  sec  16.7 MBytes  14.0 Mbits/sec        receiver

En este caso, la prueba muestra que se transfirieron 17.5 MB en 10 segundos a una velocidad promedio de 14.7 Mbps (emisor) y 14.0 Mbps (receptor). La columna Retr indica retransmisiones (1 en este caso), y Cwnd muestra el tamaño de la ventana de congestión, que aumenta durante la prueba.

Conclusión

iperf es una herramienta sencilla y eficaz para probar la velocidad de la red. Permite identificar rápidamente cuellos de botella en una conexión y evaluar el rendimiento real, ya sea en una red local o con servidores públicos como bouygues.iperf.fr. Asegúrate de que tu firewall esté correctamente configurado y utiliza las opciones adecuadas para tus necesidades. ¡Si tienes alguna pregunta, deja un comentario abajo!