Uma maneira é dizer lsof -i:57010 -sTCP:ESTABLISHED
. Isso anda na tabela de identificadores de arquivos abertos do kernel procurando por processos com uma conexão TCP estabelecida usando essa porta. (Soquetes de rede são identificadores de arquivo em sistemas do tipo * ix.) Você usaria -sTCP:LISTEN
no lado do servidor para filtrar apenas o soquete do ouvinte.
Devido à maneira como o lsof
funciona, ele só pode ver os processos que seu usuário possui, a menos que você o execute como root. Também é bastante ineficiente, já que um sistema típico * ix tem um lote de identificadores de arquivos abertos a qualquer momento. O método netstat
dado em outra resposta é mais rápido e geralmente tem menos requisitos de acesso.
O método lsof
tem uma grande vantagem, no entanto: nem todos os SOs do tipo * ix possuem um sinal netstat
para incluir o nome do processo na saída, enquanto lsof
foi portado para todos os SOs do tipo * ix que você provavelmente usará . O netstat
do OS X é assim, por exemplo. Ele tem uma opção -p
, mas faz algo diferente de netstat -p
no Linux.
Para um número de porta incomum como o da sua pergunta, normalmente você pode sair sem adicionar lsof
' -s
flag, porque é improvável que uma determinada máquina tenha programas conectando-se à porta e ouvindo nela . Pode ser útil adicioná-lo com números de porta como o 80 do HTTP, onde é provável que você tenha vários programas usando essa porta de uma só vez.
É uma sorte que o sinal -s
seja opcional em muitas situações, porque esse uso só funciona com lsof
versão 4.81 e mais recente. Em versões mais antigas, -s
significava algo completamente diferente! Essa é uma mudança vintage de 2008, mas ainda pode morder inesperadamente. O RHEL 5 é fornecido com lsof
4.78, por exemplo.