Mostrar qué aplicaciones están usando internet

En algún momento todos hemos tenido la necesidad/curiosidad de saber qué está haciendo realmente nuestro equipo. Especialmente cuando notamos que navegamos/descargamos más despacio de lo habitual.

lsof

En Linux tenemos varias herramientas muy sencillas y eficaces que nos pueden proporcionar toda esa información:

lsof, ss y netstat

«lsof» es un programa que nos ayuda a listar los ficheros abiertos en un equipo, pero curioseando por commandlinefu he descubierto que este comando, también sirve para listar los programas y procesos que están haciendo uso de internet.

Para ello lo único que tenemos que hacer es ejecutarlo como usuario normal o «root» (si queremos ver todas las conexiones del sistema) con los siguientes parámetros:

lsof -nP

Como siempre contamos con algunas alternativas interesantes :

ss -p | cat

o esta otra

netstat -lantp | grep -i stab | awk -F/ '{print $2}' | sort | uniq

NetHogs

NetHogs es una pequeña herramienta que nos permite monitorizar nuestra red, en este caso las velocidades de subida y descarga. Nethogs en vez de agrupar el tráfico por protocolos como hacen otros programas, lo hace por aplicaciones (PID), lo que nos permite comprobar en tiempo real, la cantidad de ancho de banda que está consumiendo cualquier proceso.

El funcionamiento de nethogs es sencillo, lo único que tenemos que hacer es ejecutarlo con privilegios de root y especificar la red a monitorizar

nethogs [interfaz de red]

Por ejemplo si nos estamos conectando por WiFi y nuestra interfaz es wlan0 haríamos

nethogs wlan0

nethogs2

El ratio de refresco por defecto es 1 sg, pero lo podemos cambiar añadiéndole el parámetro -d. Así en el ejemplo anterior si queremos obtener los datos cada 10 seg haríamos

nethogs -d 10 wlan0

NetNogs, está presente por defecto en los repositorios de las principales distribuciones de GNU/Linux. En Ubuntu puedes buscarlo en el «Centro de Software» o instalarlo con un:

apt-get install nethogs