Como descobrir qual programa está usando uma determinada porta

Hoje tive um probleminha com o mysql instalado em uma máquina windows. Pelo log, ele mostrou que já tinha um programa rodando na porta 3306, que é a porta padrão.

Lembro que havia um programa que mostrava essa informação.  “Cá entre nós”, estou ficando velho e esquecido, não lembro do nome do programa. Sei que o windows, através do netstat, mostra informações sobre portas, portanto tinha que me virar com ele. Depois de dar um netstat -h, olhei as opções disponíveis, que são:

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
-a            Exibe todas as conexões e portas de escuta.

-b            Exibe o executável envolvido na criação de cada conexão ou  a porta de escuta. Em alguns casos, executáveis bastante   conhecidos hospedam vários componentes independentes e,  nesses casos, a sequência de componentes envolvidos na  criação da conexão ou porta de escuta é exibida. Nessa  situação, o nome do executável fica entre [] na parte  inferior, na parte superior fica o componente que ele chamou e assim por diante até o TCP/IP ser alcançado.  Observe que essa opção pode ser demorada e falhará, a  menos que você tenha as permissões suficientes.

-e            Exibe estatísticas de Ethernet. Pode ser combinada com a  opção -s.

-f            Exibe Nomes de Domínio Totalmente Qualificados para endereços  externos.

-n            Exibe endereços e números de porta no formato numérico.

-o            Exibe a identificação do processo proprietário associado a  cada conexão.

-p proto      Mostra as conexões do protocolo especificado por proto; proto  pode ser: TCP, UDP, TCPv6 ou UDPv6.  Se usado com a opção -s  para exibir estatísticas por protocolo, proto pode ser:  IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP ou UDPv6.  -r            Exibe a tabela de roteamento.  -s            Exibe estatísticas por protocolo. Por padrão, são mostradas  estatísticas para IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP e  UDPv6; a opção -p pode ser usada para especificar um  subconjunto do padrão.

-t            Exibe o estado de offload da conexão atual.  interval      Re-exibe as estatísticas selecionadas, fazendo intervalos  de segundos entre cada exibição. Pressione CTRL+C para  interromper a re-exibição de estatísticas. Se omitido,  netstat imprimirá as informações de configuração atuais  uma vez.

Testando as opções chegei nisso: netstat -a -n -b -p tcp, que resultou nisso: TCP    0.0.0.0:3306           0.0.0.0:0 LISTENING[mysqld.exe].

Beleza. Era o próprio mysql rodando, mas precisava descobrir pq não funcionava. Resolvi removendo o serviço do mysql e instalando de novo, mas agora guardo aqui o comando pra posteridade.

netstat -a -n -b -p tcp

Com netstat -a -n -b -p tcp, tenho informação sobre o PID e como já que estou usando as coisas via linha de comando, um taskkill /PID num_PID /F acaba com o processo, principalmente porque nesse caso especifico o mysqld.exe não aparecia no Gerenciador de processos.


21 thoughts on “Como descobrir qual programa está usando uma determinada porta

  1. Luciano Dória says:

    Obrigado!! Me ajudou muito!!!Consegui identificar e fechar o programa que estava usando a porta 80.

  2. Jonathas says:

    Eu passei pelo mesmo problema do Luciano, precisava identificar um programa estava na porta 80. Essas dicas de linha de comando são raridades, mais raridades ainda quando são funcionais. Obrigado pela dica!

  3. Lucas says:

    Cara.. por favor me ajude.. eu tento usar o netstat… mas toda vez que eu uso o comando ele começa a mostrar os dados, mas fecha logo em seguida =/

  4. Lucas says:

    Bom.. consegui descobrir de outra forma qual era o programa ultilizando a porta 3306 no meu caso… mas ainda gostaria de receber a resposta da minha pergunta acima =D
    obrigado

  5. Gilberto Teles says:

    Lucas vc está executando o netstat onde?

  6. O meu deu a seguinte mensagem:
    A operação solicitada requer elevação.

    1. Gilberto Teles says:

      Se o seu sistema operacional for o Windows 7, basta clicar no inciar >> todos os programas >> Acessórios >> clique com o botão direito do mouse em Prompt de comando e escolha a opção: executar como administrador.

  7. deyverson says:

    Gilberto vc parece um dos magos do Yug HO! na quelas cartinhas
    aqueles ‘Effect’ saca

    1. Gilberto Teles says:

      eita!

  8. Carmelio says:

    Valeu man.. muito obrigado.. Ajudou e muito

  9. juliely says:

    Como eu vejo se a porta 80 está sendo utilizada?
    ode que fica este netstat?

    1. Gilberto Teles says:

      O netstat vc executa através do prompt de comando. Se a porta 80 for listada ela está sendo usada.

  10. welington says:

    aqui o que está usando a porta 80 aparece can not obtain ownership information :(

  11. welington says:

    haha descobri 1 forma melhor
    netstat -ao

    daí aparece o pid :)

    depois usar o
    taskkill /PID num_PID /F

  12. Shai says:

    Muito bom!! Obrigada!!

  13. Muito bom o tutorial

  14. Miguel says:

    De repente parou de funcionar meu servidor IIS. Com esse comando descobri que o SKYPE que instalei, assuniu a porta 80. Muito obrigado!

  15. Beto Junior says:

    Ótimo tutorial me ajudou muito^^, mais tenho um problema eu usava xampp para gerenciar meu sites com o localhost, passei uns tempos sem usar o programa, e quando fui abrir o xampp não tava pegando, tentei outro programa e este disse q a porta 80 e/ou 3306 estava sendo usanda, foi ai que o seu tutorial me ajudou, só que descobri infeliz que o programa que esta usando a porta 80 é o avast, eu não quero desabilita-lo, oq eu fasso?

    1. Gilberto Teles says:

      No avast deve ter como mudar a porta, ou vc pode mudar a porta do servidor Apache, vc encontra isso no arquivo httpd.conf, mas se vc usa soft pra desenvolvimento como o dreamweaver que utiliza configuração de sites, vc precisa alterar a url em cada site, para localhost:portaqvcescolheu/pastaondeestaosite.

      Abçs

  16. Francisco Marcio says:

    Muito bom o tutorial, mas ainda sou leigo no assunto. Segui os comandos descritos no tutorial, no meu caso parece que o internet explorer.exe como o Avast estão usando a porta 80, é isso mesmo ou estou errado?. No prompt aparece dessa forma:

    Internet.exe
    protocolo endereço local endereço externo estado
    tcp 192.168.0.102:51772 77.234.44.61:80 established

    Avast.exe
    protocolo endereço local endereço externo estado
    tcp 192.168.0.102:52515 200.123.198.169:80 established

    1. Gilberto Teles says:

      Nesse caso significa que os dois programas estão acessando um endereço externo pela porta 80 e isso não é um problema. se vc tivesse no endereço local 2 programas sendo acessados pela mesma porta, aí sim seria um problema.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>