Como monitorar continuamente os PIDs conectados a soquetes locais?

Como monitorar continuamente os PIDs conectados a soquetes locais?

Algunsprocessos locaisestão conectando e desconectando 127.0.0.1 na porta 1234.

Gostaria de registrar todas as conexões nesta porta (ou no processo do servidor).

eu tentei

 ss -tpn | grep 1234 

Mostra uma lista, mas depois para; Ele não registra novas conexões, então não consigo capturar os soquetes nem o PID do proprietário.

Que ferramenta posso usar para descobrir o PID das tomadas de conexão e desconexão?

Responder1

existe uma ferramenta de "observação" que faz isso, ou você pode
while true; do sleep 2; clear; ss -tulnp | grep 1234 ; done
anexar o código a um arquivo e acompanhá-lo. o que provavelmente gerará uso da CPU, mas pode ajudá-lo com o que você está procurando.
Comando de observação do Linux

Responder2

Existem duas ferramentas que você pode usar para monitorar connecteventos TCP no Linux:

A diferença entre os dois é que o primeiro oferece opções para personalizar a saída (por exemplo, filtragem por PID ou número de porta), enquanto o último é uma ferramenta mais simplista e não oferece opções sofisticadas.

Para o seu caso de uso, a opção mais simples seria instalar o Cco e executar:

tcpconnect.py -P 1234

Se você instalar essas ferramentas usando o gerenciador de pacotes da sua distribuição, lembre-se de que algumas distros não as colocam tcpconnectem /usr/binoutro lugar /usr/share. Portanto, certifique-se de verificar onde sua distribuição coloca esses arquivos, caso não consiga encontrá-los.

Responder3

Embora ssapenas faça dump de estatísticas de soquete, e você precisaria simular dumps contínuos (com watchou em whileloop), netstatpossui um modo contínuo ( -c).

netstat -ntcp | grep '  127.0.0.1:1234'

Observe os dois espaços antes de 127... não é um erro de digitação, se você precisar capturar apenas o pid do cliente.
Exemplo de saída:

$ 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

Responder4

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

não registro, mas monitoramento poderoso em tempo real com destaques...

$ man watch

  • -n 1 - a cada 1 segundo
  • -d - Destaque as diferenças

$ man lsof

  • -n - não resolve ips para domínios.
  • -itcp:1234 - qualquer interage com a porta tcp 1234

informação relacionada