Guias

Cómo ver el ancho de banda en CentOS con iftop

TL;DR — Lo que vas a tener al final

  • Tiempo de setup: 5 minutos para instalar iftop, 15 para aprender a leer la salida y tomar atajos.
  • Requisitos: Acceso root (o NET_ADMIN), una interfaz de red activa, y tráfico que valga la pena mirar.
  • Resultado: Vista en vivo de qué conexión consume cuánto ancho de banda, con atajos para filtrar, ordenar y pausar.
  • Troubleshooting: Si ves 0 tráfico verifica interfaz con `-i any`, root, y que la conexión esté en otra NIC (Docker, VPN, VLAN).

Cuando un servidor se pone lento, lo primero que me pregunto no es si la CPU está al 100% ni si la RAM se quedó corta. Lo primero que quiero saber es quién se está comiendo el ancho de banda. Hace años top y htop resolvían casi todo, pero cuando el cuello de botella es la red, necesitas una herramienta específica: iftop. Es vieja (2004), ncurses puro, y sigue siendo de las mejores para diagnóstico rápido de “qué está pasando con mi red ahora mismo”.

En este post vas a ver cómo instalar iftop, cómo leer la salida, los atajos que realmente vas a usar, y los casos donde es mejor que sus alternativas modernas (nethogs, vnstat, iftop para flujos, Prometheus). No es un tutorial básico: es lo que me hubiera gustado leer la primera vez que me tocó diagnosticar por qué un servidor de 1 Gbps estaba dando 200 Mbps al mundo exterior.

¿Qué es iftop y para qué te sirve?

iftop es una herramienta de línea de comandos que muestra el tráfico de red por conexión en tiempo real. Piénsalo como top pero para tu interfaz de red: te lista cada par origen-destino, cuánto está transmitiendo cada uno, y cuánto llevan acumulado en ventanas de 2, 10 y 40 segundos.

Lo que lo hace especial es que no te dice el total de tráfico — eso lo hace vnstat o el contador de tu switch. Lo que te dice es quién le habla a quién, en este momento, y a qué velocidad. Es la diferencia entre saber “estoy usando 50 Mbps” y saber “el cliente X le está mandando 40 Mbps a un servidor en Singapur que no reconozco”.

Casos típicos donde lo uso:

  • Diagnóstico de “el servidor está lento” cuando top muestra CPU baja.
  • Detectar si un backup, sync de logs, o actualización automática está saturando la red.
  • Encontrar conexiones sospechosas (crypto miners, scrapers, exfiltración).
  • Verificar que un balanceador está distribuyendo tráfico.
  • Comparar tráfico antes y después de un cambio de configuración (nueva VLAN, nuevo firewall, etc).

Instalación de iftop

iftop está en los repos de todas las distros grandes. El nombre del paquete es el mismo en todos lados.

Debian / Ubuntu / Kali / Linux Mint

sudo apt update
sudo apt install -y iftop

RHEL / CentOS / Rocky / AlmaLinux / Fedora

En Fedora viene directo. En RHEL/CentOS/Rocky/Alma necesitas EPEL primero:

# RHEL/Rocky/Alma/CentOS Stream 8/9
sudo dnf install -y epel-release
sudo dnf install -y iftop
# Fedora (sin EPEL)
sudo dnf install -y iftop

Arch / Manjaro / EndeavourOS

sudo pacman -S iftop

Alpine (containers, homelab ligero)

sudo apk add iftop

macOS (Homebrew)

brew install iftop

Si iftop no encuentra tráfico cuando lo corres, el problema casi siempre es permisos. Necesitas root o capabilities NET_ADMIN y NET_RAW para capturar paquetes. La forma rápida de probarlo:

sudo iftop -n -i any

Si con root ves tráfico y sin root no, el tema es capabilities. Para dárselas a tu usuario sin hacerlo root:

sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/iftop

Uso básico: cómo leer la salida

El comando más común es el más simple:

sudo iftop -i eth0 -n

Las flags aquí son: -i eth0 para escuchar solo en la interfaz ethernet principal, y -n para no resolver DNS (esencial en servidores, si no cada IP se convierte en una búsqueda DNS que vuelve la salida ilegible).

La pantalla tiene tres partes:

  1. Header: línea de tráfico agregado con totales RX/TX en ventanas de 2s, 10s y 40s. Es la misma escala que usa top para CPU load.
  2. Barra de estado: tráfico total acumulado (TX a la derecha, RX a la izquierda), peak, y rates.
  3. Lista de conexiones: cada línea es un par origen→destino con sus rates en las 3 ventanas. Las flechas => y <= indican dirección del tráfico.

La convención de las flechas:

  • => TX: este host está enviando al otro.
  • <= RX: este host está recibiendo del otro.
  • Si ves => y <= en la misma línea, hay tráfico en ambas direcciones.

Las tres columnas numéricas son siempre promedios en 2s, 10s, 40s. La columna más a la derecha es el rate actual (2s). Es lo que más te importa cuando estás diagnosticando un pico.

Para salir: q.

Opciones avanzadas que sí vas a usar

Las opciones que más uso en el día a día. No las pongo todas — solo las que tienen sentido real:

  • -i INTERFAZ: especifica interfaz. Si tienes varias (containers, VLANs, VPNs), esto es obligatorio. Usa -i any para todas.
  • -n: desactiva resolución DNS. Úsalo SIEMPRE, en todos los casos, salvo que te interese perder el tiempo mirando PTRs.
  • -N: muestra números de puerto en vez de nombres de servicio. Imprescindible para diagnóstico real.
  • -p: modo promiscuo. Captura todo el tráfico de la red, no solo el destinado a tu MAC. Útil en un gateway.
  • -P: muestra puertos además de hosts. Combinado con -N te da la máxima granularidad.
  • -B: muestra bandwidth en bytes/sec en lugar de bits/sec. Útil cuando estás comparando con contadores de switches que reportan en bytes.
  • -f FILTER: filtro BPF-like (sintaxis pcap). Para aislar un host o puerto específico: iftop -f "host 10.0.0.5".
  • -t: modo texto sin ncurses. Para redirigir a archivo o verlo en una sesión SSH lenta: iftop -t -s 60 -L 50 > /tmp/red.log.
  • -s SECONDS: imprime el header cada N segundos (útil con -t).
  • -L N: limita a N líneas en modo texto.

Mi combinación favorita para un servidor de producción:

sudo iftop -i eth0 -n -N -P -B -f "not (host 192.168.1.1 or host 192.168.1.2)"

Esto te da: la interfaz correcta, sin DNS, con puertos, en bytes, y filtrando tu propia red local para que no te ciegue el ruido de NFS/SMB.

Atajos de teclado dentro de iftop

Una vez dentro de iftop, no necesitas salir para cambiar la vista. Estos son los atajos que más uso, ordenados por frecuencia:

  • h: alterna entre mostrar/ocultar columna de hosts. La dejo oculta cuando solo me importan los totales.
  • n: pausa el refresco. Congela la pantalla para leer una conexión específica. n otra vez para reanudar.
  • s/d: ocultar/mostrar hosts de origen/destino. Útil cuando quieres ver solo una dirección.
  • S/D: oculta/mostrar hosts específicos. Te pide que escribas la IP/hostname para filtrar.
  • t: cambia entre 4 modos de visualización de flechas (origen→destino, ambos, solo TX, solo RX). Por defecto es la vista “ambos”.
  • p: toggle de mostrar/ocultar puertos.
  • 1/2/3: ordena por la columna 1, 2 o 3 (rates de 2s, 10s, 40s). 3 es la más útil para encontrar conexiones que llevan un rato consumiendo mucho.
  • </>: invierte el orden de clasificación.
  • j/k: scroll abajo/arriba. Útil cuando hay más conexiones de las que caben en pantalla.
  • q: salir. (Sí, hay que recordarlo porque uno se queda pegado.)

La tecla n para pausar es, con diferencia, la que más uso. Estás viendo pasar conexiones y de repente ves una que te interesa — pausas, lees, identificas el proceso por IP/puerto, y luego sigues. Sin pausa es imposible.

Casos de uso prácticos que me han salvado horas

Estos son escenarios reales donde iftop me ha dado la respuesta en menos de 5 minutos:

Caso 1: “el servidor está lento pero top muestra todo normal”

Lo primero es descartar red. Corres iftop -i eth0 -n -N -P -B y miras las primeras 10 líneas. Si ves una conexión consumiendo más del 30% del ancho de banda de subida, ya tienes el culpable. Después confirmas con ss -tnp o netstat -tnp qué proceso es.

Caso 2: “alguien está minando en mi servidor”

Los crypto miners suelen hablar con pools en puertos altos (3333, 14444, 14433). iftop -n -N -P los delata inmediatamente — verás conexiones constantes a IPs en rangos de hosting poco comunes con puertos altos.

Caso 3: “el backup está saturando la red”

Si tienes un cron de rsync, borgbackup, o pg_dump corriendo en horario laboral, iftop te muestra exactamente cuánto ancho de banda se está comiendo y hacia dónde. La solución típica es --bwlimit en rsync o Ionice + trickle.

Caso 4: balanceo entre dos ISP

Si tienes dos uplinks, iftop -i eth0 + iftop -i eth1 en dos terminales te muestra visualmente cómo se está distribuyendo el tráfico. Es la forma más rápida de ver si tu ECMP está balanceando bien.

Caso 5: “hay conexiones raras a las 3 AM”

Cualquier conexión persistente a IPs en China/Rusia/USA-hosting a las 3 AM merece investigación. iftop -t -s 3600 -L 100 > /tmp/noche.log deja un log de una hora que después puedes grepear.

Troubleshooting: cuando iftop no muestra lo que esperas

Los problemas más comunes, en orden de frecuencia:

Problema 1: iftop muestra todo en ceros

Causa más probable: estás mirando la interfaz equivocada. Solución:

ip -br addr show
# o más compacto
ls /sys/class/net/

Y vuelve a correr con -i apuntando a la correcta. Si tienes muchas interfaces (containers, bridges, VLANs), -i any te captura todas.

Problema 2: solo veo tráfico en una dirección

Si solo ves TX o solo RX, probablemente estás en una interfaz espejo (SPAN port) o en un endpoint donde solo sale o solo entra tráfico. Confirma con iftop -i any para descartar.

Problema 3: la pantalla parpadea o se ve corrupta

Tu terminal no soporta ncurses correctamente. Prueba con TERM=xterm iftop o usa -t para modo texto plano.

Problema 4: no veo mi propio tráfico al servidor

Tu SSH está en otra interfaz o en una VPN tun/tap. iftop -i any -f "host $(hostname -I | awk "{print $1}")" debería capturarte.

Problema 5: iftop corre pero consume mucha CPU

En servidores con tráfico de varios Gbps, iftop puede ser pesado porque lee cada paquete. Usa filtros BPF (-f) para reducir lo que captura, o usa samp (NetFlow) para muestreo.

Alternativas modernas a iftop

iftop sigue siendo mi primera opción para diagnóstico rápido, pero hay escenarios donde otras herramientas brillan más:

  • nethogs: te dice qué proceso está consumiendo red. Si necesitas saber “qué PID” en vez de “qué conexión”, es mejor. Instalable con el mismo nombre en todas las distros.
  • vnstat: contador de tráfico histórico. Lo dejas corriendo y te dice cuánto consumiste hoy, esta semana, este mes. Perfecto para facturación o para detectar “algo está consumiendo más de lo normal”.
  • iptraf-ng: interfaz más detallada, con estadísticas por protocolo. Más info que iftop pero también más overhead.
  • bmon: si quieres gráficos ASCII de varias interfaces simultáneamente.
  • NetFlow / sFlow / Prometheus: para monitoreo continuo en producción, no para diagnóstico en vivo. iftop es para “qué pasa ahora”, estas son para “qué pasó en la última semana”.
  • tcpdump: cuando necesitas ver el contenido de los paquetes, no solo los rates. tcpdump -i eth0 -nn -c 100 te captura 100 paquetes y te los muestra.

Mi flujo típico: iftop para ver el qué → nethogs para ver el quién → tcpdump para ver el contenido si hace falta. Tres herramientas, tres niveles de detalle.

Preguntas frecuentes

¿Por qué Cómo ver el ancho de banda en CentOS con iftop es relevante para sysadmins Linux?

Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.

¿Qué necesito para empezar con Cómo ver el ancho de?

Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.

¿Cuáles son los errores más comunes con Cómo ver el ancho de?

Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.

¿Cuándo usar Cómo ver el ancho de y cuándo una alternativa?

Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.

¿Cómo migro desde una configuración previa a Cómo ver el ancho de?

Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.

Lee también

Alfonso Moreno | Sysadmin Senior

Soy Alfonso, sysadmin senior con RHCE y más de 10 años administrando sistemas Linux para empresas y proyectos personales. Me especializo en infraestructura, redes, virtualización, monitoring, automation y self-hosting. Sobre SoyLinux.com SoyLinux.com es un blog técnico en español sobre Linux, software libre y self-hosting. Lo mantengo en mi tiempo libre. Áreas de expertise - Linux server administration: RHEL, CentOS, Rocky, Alma, Fedora, Debian, Ubuntu - Network services: Postfix, BIND, Samba, NFS, Squid - Virtualización y containers: KVM, Proxmox, Docker, Podman - Monitoring: Prometheus, Grafana, Zabbix - Automation: Ansible, Bash scripting - Self-hosting: Vaultwarden, Nextcloud, Jellyfin, Immich, Homelab Contacto - Email: [email protected]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *