![¿Cómo monitorear continuamente los PID que se conectan a enchufes locales?](https://rvso.com/image/168802/%C2%BFC%C3%B3mo%20monitorear%20continuamente%20los%20PID%20que%20se%20conectan%20a%20enchufes%20locales%3F.png)
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 connect
eventos TCP en Linux:
- tcpconnect.pyen herramientas bcc (pkgs.org,repología)
- tcpconnect.bten bpftrace (pkgs.org,repología)
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 tcpconnect
en /usr/bin
ningún otro lugar, como /usr/share
por ejemplo. Así que asegúrese de verificar dónde su distribución coloca estos archivos si no puede encontrarlos.
Respuesta3
Si bien ss
solo volca estadísticas de sockets y necesitaría simular volcados continuos (con watch
o un while
bucle), netstat
tiene 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