¿Alguien sabe una manera fácil de pedirle a Linux que "muestre cada paquete de Internet desde/hacia google chrome" o "muestre cada paquete de internet hacia/desde el proceso telnet con PID 10275"?¿Cómo puedo capturar paquetes de red por PID?
El ejemplo de telnet no es demasiado útil, ya que puedo usar wireshark o tcpdump para ver todas las conversaciones TCP que involucran el puerto 23. Eso y nadie usa telnet nunca más. Pero olfatear todos los paquetes hacia/desde aplicaciones complejas que usan muchos puertos parece una cosa útil.
he encontrado algunas respuestas relacionadas explorando diferentes maneras para corroborar puertos y PID (o programas nombres) y tal, pero nada sobre los paquetes
- How to tie a network connection to a PID without using lsof or netstat?
- How I can get ports associated to the application that opened them?
- How to do like "netstat -p", but faster?
Parece que alguien podría haber estado dispuesto a pagar por esta respuesta hace un tiempo:
NetHogs es útil para ver rápidamente qué programas están creando tráfico a través de una interfaz, pero no tiene una forma de capturar los paquetes.
Hrm, debería preguntar en serverfault en su lugar? –
Esto probablemente pertenece a SuperUser, en realidad. Una pregunta interesante Podría usar WireShark para filtrar las solicitudes HTTP, pero tendría que enganchar los controladores del kernel para filtrar los paquetes basados en los PID – Bojangles
. Es un problema complejo: los sockets no son propiedad de los PID; puedes pasarlos de un proceso a otro. Si el proceso A abre un socket, puede pasarlo para procesar B y luego salir; si está filtrando en el PID del proceso A, ¿qué ocurre ahora? – bdonlan