Por que o netstat no Windows mostra conexões com mais de 24 horas?

1

Estou recebendo o erro relacionado ao esgotamento de porta no meu servidor ("Apenas um uso de cada endereço de soquete (protocolo / endereço de rede / porta) é normalmente permitido").

Então, eu verifiquei com o netstat -n, e ele lista cerca de 84000 conexões.

Com base na porta local e no fato de que o endereço IP externo é eu mesmo, vejo que, por exemplo, 3654 deles se relacionam a um programa em execução no mesmo servidor que matei há mais de 24 horas (ontem de manhã, em facto). Eles estão todos no estado TIME_WAIT, em portas estrangeiras entre 49165 e 65533. Pelo menos alguns dos mesmos números de portas estrangeiras também aparecem como portas locais, por exemplo:

TCP    <my_ip>:14046  <my_ip>:49165  TIME_WAIT
...
TCP    <my_ip>:49165  <other_ip>:80  TIME_WAIT

14046 é a porta que um programa em meu servidor escuta e que o programa que eu matei ontem costumava conectar repetidamente. host <other_ip> me dá algo em compute-1.amazonaws.com , não reconheço o IP. Eu não consigo tirar nada do meu navegador. Então, não consigo descobrir o que nessa máquina teria conectado à porta 80, mas há várias coisas que foram executadas na mesma máquina recentemente que consomem serviços da Web, então eu acho que poderia ser um redirecionamento ou semelhante de um daqueles.

As execuções separadas do netstat com mais de 4 minutos de intervalo mostram que ambas as conexões estão na lista.

Isso é esperado? Eu pensei que os soquetes deveriam finalmente fechar após 4 minutos, mas Netstat normalmente os lista por muito mais tempo? Essas portas estão realmente ocupadas e, em caso afirmativo, há algo que eu possa fazer para liberá-las? De preferência sem reiniciar, mas se eu tiver que, então eu tenho que fazer.

O SO é o Windows Server Enterprise, executado em uma VM Rackspace.

[Edit: hmm, eu deveria ter perguntado isso no serverfault?]

[Outra edição: uma reinicialização pareceu resolvê-lo. Todas as conexões antigas desapareceram e novas conexões do mesmo tipo desaparecerão em poucos minutos, como esperado. Eu diria, portanto, que a pilha de rede de alguma forma entrou em um estado de mau funcionamento.]

    
por Steve Jessop 04.08.2011 / 20:00

1 resposta

0

Dê uma olhada no seguinte artigo da Microsoft: Evitando o esgotamento da porta TCP / IP .

Uma das sugestões é verificar a configuração do registro para a chave TcpTimedWaitDelay em HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters. Essa entrada controla "o período de tempo que uma conexão permanece no estado TIME_WAIT quando a conexão está sendo fechada". Talvez você tenha um valor muito longo de alguma forma .. o padrão é de 240 segundos.

Além disso, você pode querer verificar e ver se você pode rastrear e ver quais processos estão causando as conexões TIME_WAIT e ver se há uma configuração nele para fechar as portas mais rapidamente.

    
por 04.08.2011 / 21:28