Como usar o netstat para mostrar qual processo está escutando em uma porta

22

Estou em um laptop OS X Mountain Lion e tenho algumas caixas Vagrant nele. Estou tentando descobrir qual processo está escutando na porta 8080. Minhas variações produzem uma centena de linhas, mas nenhuma com um número de porta específico. Estou assumindo algo como:

netstat -XXX | grep 8080
    
por timpone 03.08.2013 / 03:40

7 respostas

45

Infelizmente, no OSX, você está preso ao BSD netstat , que não mostra o ID do processo anexado a uma determinada porta. O que você precisa fazer é usar lsof . A sintaxe que você precisará usar é:

lsof -i :8080

Isso imprime muitas informações, a maioria das quais você não se importa, mas os campos são bem rotulados. Por exemplo, confira este exemplo de saída.

lsof -i :53237
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest   29u  IPv4 0x2c3f7f95244855c3      0t0  TCP localhost:53237 (LISTEN)

Isso me diz que a porta 53237 está em uso pelo ID do processo 927. Ao ler o campo COMMAND, tenha em mente que essa saída está truncada, na realidade, o nome completo do binário é GoogleTalkPlugin.

    
por 03.08.2013 / 04:01
6

Isso é o que eu gosto de usar ao procurar por um PID da porta de escuta. Para uso do Linux: netstat -tunlp

  • n rede
  • l escutando portas
  • processo p
  • t tcp
  • u udp

Informações adicionais podem ser encontradas nas páginas man.

    
por 29.08.2014 / 04:28
5

Eu estava no processo de modificar netstat no OS X para fornecer esse recurso e me deparei com o fato de que -v fornecerá o pid associado a um soquete.

    
por 03.11.2015 / 09:04
2

Para descobrir o uso específico da porta abaixo do comando netstat

  netstat -an | grep ':8080'
    
por 03.08.2013 / 03:46
2

Para mim, as duas linhas seguintes funcionam melhor para mostrar quais aplicativos têm portas de escuta abertas e túnel:

netstat -Watn | grep LISTEN
lsof -Pnl +M -i -cmd | grep LISTEN
    
por 03.11.2017 / 10:30
1

De man netstat

-p, --programa        Mostrar o PID e o nome do programa ao qual cada soquete pertence.

Eu costumo fazer isso: netstat -antup | grep 8080

    
por 03.08.2013 / 03:49
0

O comando abaixo mostra a conexão:

netstat -antop | grep :8080

Para visualizar o fluxo completo em tempo real, você pode usar watch :

watch -d -t -n 1 'lsof -n -i :8080'
    
por 03.08.2013 / 13:29