¿Cómo puedo saber qué aplicación está usando la red?

8

Muy ocasionalmente cuando uso mi Mac, me doy cuenta de que mi conexión a Internet se está desacelerando. Al usar el Monitor de actividad puedo ver que es porque algo está descargando datos a la velocidad máxima que puede soportar mi conexión, pero no sé cómo decirle a quién es responsable. Puede deberse a varias cosas diferentes (sincronización de Dropbox; algunas aplicaciones que realizan una actualización automática; más recientemente fue un búfer de video en una pestaña del navegador que olvidé), por lo que sería muy útil tener una forma de saberlo. Qué aplicación es responsable del uso de la red. ¿Es tal cosa posible en OS X? Idealmente estoy buscando una solución gratuita. (La línea de comando está bien.) Estoy en Snow Leopard si hace una diferencia.

    
pregunta Nathaniel 07.07.2012 - 13:33

5 respuestas

5

Puedes probar este dtrace one-liner:

sudo dtrace -n 'syscall::recvfrom:return { @[pid,execname] = sum(arg0); }'

Deje que se ejecute por un tiempo, luego presione Control-C. Imprimirá un resumen de la cantidad de bytes leídos desde sockets, distribuidos entre los procesos. Para una vista más detallada, reemplace sum por quantize . O solo para ver un recuento de lecturas de socket, reemplace sum por count .

Descargo de responsabilidad: solo he probado esto en Lion, pero AFAIK no se han producido grandes cambios en la capacidad de rastreo entre SL y Lion.

    
respondido por el Harald Hanche-Olsen 07.07.2012 - 16:31
6

Cortafuegos

Puedes usar Little Snitch o HandsOff . Son excelentes cortafuegos y ambos tienen una función de "Monitor de red", que hará el trabajo:

  

Little Snitch incluye un Monitor de red, que muestra información detallada de todo el tráfico de red entrante y saliente.
  Un icono de estado en la barra de menú proporciona un resumen de la actividad actual de la red y una ventana de monitor con información más completa aparece automáticamente en caso de nuevos eventos de tráfico.

     

Hands Off es una aplicación para monitorear y controlar el acceso de las aplicaciones a su red y discos. Ser capaz de monitorear las actividades que normalmente no se notan le permite tomar decisiones informadas con respecto a la transferencia de su información privada, evitando así la fuga de información confidencial.

Los monitores de red de: Little Snitch (izquierda), HandsOff (derecha)

Nettop

Una solución cli gratuita e integrada (desafortunadamente no está incluida en Snow Leopard) sería nettop . Nettop agrupa el tráfico por programa y puerto y mide varias estadísticas de red.

Otro

Hay pocos otros programas que capturan y miden el tráfico ( iftop , wireshark , tcpdump ), pero no conocen el pid originado. Para establecer la conexión, debe utilizar netstat .

    
respondido por el mspasov 07.07.2012 - 14:37
4
sudo fs_usage -f network

le dará todos los accesos a la red por todas las aplicaciones (y procesos). Por lo general, el proceso que genera mucho tráfico es el que aparece con más frecuencia en la salida.

    
respondido por el nohillside 07.07.2012 - 19:21
1

El "libro de DTrace" tiene una secuencia de comandos, soconnect.d , que hace esto.

Copie la versión "Mac OS X", péguela en un archivo de texto, luego ejecútela desde el terminal con sudo dtrace -s soconnect.d .

    
respondido por el Ken 07.07.2012 - 16:37
1

El Monitor de actividad también ha tenido columnas para los bytes recibidos y enviados desde la versión 10.9:

    
respondido por el user495470 13.12.2013 - 09:43

Lea otras preguntas en las etiquetas