¿Cómo monitorear continuamente los PID que se conectan a enchufes locales?

¿Cómo monitorear continuamente los PID que se conectan a enchufes locales?

Algunoprocesos localesse están conectando y desconectando a 127.0.0.1 en el puerto 1234.

Me gustaría registrar todas las conexiones a este puerto (o al proceso del servidor).

He intentado

 ss -tpn | grep 1234 

Muestra una lista, pero luego se detiene; No sigue registrando nuevas conexiones, por lo que no puedo detectar los enchufes ni el PID del propietario.

¿Qué herramienta puedo utilizar para descubrir el PID de los enchufes de conexión y desconexión?

Respuesta1

hay una herramienta de "vigilancia" que hace eso, o puede
while true; do sleep 2; clear; ss -tulnp | grep 1234 ; done
agregar el código a un archivo y realizar un seguimiento del mismo. lo que probablemente generará uso de la CPU, pero puede ayudarte con lo que estás buscando.
Comando de vigilancia de Linux

Respuesta2

Hay dos herramientas que puede utilizar para monitorear connecteventos TCP en Linux:

La diferencia entre los dos es que el primero proporciona opciones para personalizar la salida (por ejemplo, filtrar por PID o número de puerto), mientras que el segundo es una herramienta más simplista y no ofrece opciones sofisticadas.

Para su caso de uso, la opción más sencilla sería instalar bcc y ejecutar:

tcpconnect.py -P 1234

Si instala estas herramientas utilizando el administrador de paquetes de su distribución, tenga en cuenta que algunas distribuciones no las colocan tcpconnecten /usr/binningún otro lugar, como /usr/sharepor ejemplo. Así que asegúrese de verificar dónde su distribución coloca estos archivos si no puede encontrarlos.

Respuesta3

Si bien sssolo volca estadísticas de sockets y necesitaría simular volcados continuos (con watcho un whilebucle), netstattiene un modo continuo ( -c).

netstat -ntcp | grep '  127.0.0.1:1234'

Tenga en cuenta que los dos espacios antes de 127... no son un error tipográfico, si necesita capturar solo el pid del cliente.
Salida de muestra:

$ netstat -ntcp | grep '  127.0.0.1:1234'
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:35720         127.0.0.1:1234          ESTABLISHED 22655/nc            
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc            
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:35720         127.0.0.1:1234          ESTABLISHED 22655/nc            
tcp        0      0 127.0.0.1:50146         127.0.0.1:1234          ESTABLISHED 21274/nc

Respuesta4

watch -n 1 -d 'lsof -n -itcp:1234'

no registro, sino monitoreo potente en tiempo real con aspectos destacados...

$ man watch

  • -n 1 - cada 1 segundo
  • -d - Resalta las diferencias

$ man lsof

  • -n: no se resuelven IP para dominios.
  • -itcp:1234 - cualquiera interactúa con el puerto tcp 1234

información relacionada