FolioPierEstudos de TI

netstat (Transporte)

Nota 44 de 54 · 3 min de leitura
Nesta página
  1. As variações do comando
  2. Como ler uma linha
  3. O endereço local mostra o bind
  4. Os estados das conexões
  5. O programa dono da porta

No servidor, é preciso confirmar quais portas estão abertas, em qual endereço e por qual processo. O comando netstat mostra as três informações.

As variações do comando

  • netstat -ano: lista todas as conexões e portas, com o número do processo responsável por cada uma, chamado PID;
  • netstat -ano | findstr :3306: mostra apenas as linhas da porta 3306;
  • netstat -ano | findstr LISTENING: mostra apenas os serviços à espera de conexões.

Nas opções, a letra a pede todas as conexões, a letra n pede endereços e portas em números, e a letra o acrescenta o PID.

Como ler uma linha

A linha TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 4820 se lê assim: protocolo TCP, serviço escutando em todas as interfaces na porta 3306, no estado LISTENING, executado pelo processo de número 4820.

O endereço local mostra o bind

  • 0.0.0.0:3306: o serviço escuta em todas as interfaces e atende as estações.
  • 192.168.1.10:3306: o serviço escuta apenas na interface com esse endereço, o que também atende as estações.
  • 127.0.0.1:3306: o serviço escuta apenas no próprio computador, o que é um problema para o caixa e para os balcões.

Os estados das conexões

  • LISTENING: o serviço está à espera de conexões. É o estado esperado no servidor.
  • ESTABLISHED: a conexão está aberta, o que não garante que a aplicação funcione.
  • SYN_SENT: o computador tentou abrir a conexão e ainda não recebeu resposta. Quando esse estado persiste, a tentativa tende a terminar por tempo esgotado.
  • TIME_WAIT: a conexão foi encerrada há pouco tempo, o que é normal.
  • CLOSE_WAIT: o outro lado encerrou a conexão, e o programa local ainda não encerrou a sua parte.

Muitas linhas em CLOSE_WAIT indicam um programa que não encerra as suas conexões. Muitas linhas em SYN_SENT indicam tentativas de conexão com um destino que não responde.

O programa dono da porta

O PID identifica o programa que usa a porta:

  • tasklist /fi "PID eq 4820": mostra o nome do programa com o PID 4820;
  • netstat -abno: mostra, junto de cada conexão, o nome do programa responsável e exige o Prompt de Comando executado como administrador.

A aba Detalhes do Gerenciador de Tarefas também mostra o PID de cada programa.

No suporte

Uma porta ocupada por outro programa é uma causa real e pouco lembrada de uma conexão que abre, mas não funciona. O PID mostra qual programa está, de fato, na porta.

Para guardar

  • O estado LISTENING indica um serviço à espera de conexões.
  • O endereço local revela o bind do serviço.
  • O PID identifica o programa dono da porta.
  • Muitas linhas em SYN_SENT indicam um destino que não responde.
No servidor geral, a porta 9000 está no estado LISTENING, com o PID 4820, mas a sincronização não funciona. Qual é a próxima verificação?

Confirmar se o PID 4820 é mesmo o serviço de sincronização, com o comando tasklist /fi "PID eq 4820". Outro programa ocupando a porta faz a conexão abrir sem que a sincronização funcione.

No caixa 01, o netstat mostra várias conexões para 192.168.1.10:3306 no estado SYN_SENT. O que isso indica?

O caixa 01 está tentando abrir conexões com o banco de dados e não recebe resposta. O sintoma é de tempo esgotado, e as suspeitas são um firewall que descarta a conexão, um servidor desligado ou um endereço errado.

Publicado a partir do Obsidian · FolioPier