1 votes

Pourquoi netstat sous Windows affiche-t-il des connexions datant de plus de 24 heures ?

J'obtiens l'erreur relative à l'épuisement des ports sur mon serveur ("Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est normalement autorisée").

J'ai donc vérifié avec netstat -n, et il y a environ 84000 connexions.

En me basant sur le port local et sur le fait que l'adresse IP étrangère est la mienne, je peux voir que, par exemple, 3654 d'entre eux concernent un programme tournant sur le même serveur que j'ai tué il y a plus de 24 heures (hier matin, en fait). Ils sont tous dans l'état TIME_WAIT, sur des ports étrangers entre 49165 et 65533. Au moins certains de ces numéros de ports étrangers apparaissent également comme des ports locaux, par exemple :

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

14046 est le port qu'un programme sur mon serveur écoute et auquel le programme que j'ai tué hier se connectait de manière répétée. host <other_ip> me donne quelque chose à compute-1.amazonaws.com Je ne reconnais pas l'IP. Je ne peux rien en tirer à partir de mon navigateur. Je n'arrive donc pas à comprendre ce qui, sur cette machine, aurait pu se connecter au port 80 sur , mais il y a plusieurs choses qui ont été exécutées sur la même machine récemment et qui consomment des services web, donc je suppose qu'il pourrait s'agir d'une redirection ou d'un élément similaire provenant de l'un d'entre eux.

Des exécutions séparées de netstat à plus de 4 minutes d'intervalle montrent que les deux connexions restent dans la liste.

Cela est-il prévu ? Je pensais que les sockets étaient censées se fermer au bout de 4 minutes environ, mais est-ce que netstat les affiche normalement pendant beaucoup plus longtemps ? Ces ports sont-ils vraiment occupés, et si c'est le cas, puis-je faire quelque chose pour les libérer ? De préférence sans redémarrer, mais si je dois le faire, alors je dois le faire.

Le système d'exploitation est Windows Server Enterprise, fonctionnant sur une VM Rackspace.

[Edit : hmm, j'aurais dû poser cette question sur serverfault].

[Une autre modification : un redémarrage a semblé régler le problème. Toutes les anciennes connexions ont disparu, et les nouvelles connexions du même type disparaissent en quelques minutes, comme prévu. Je suppose donc que la pile réseau s'est mise à mal fonctionner d'une manière ou d'une autre].

0voto

Ryan Guest Points 2262

Consultez l'article suivant de Microsoft : Éviter l'épuisement des ports TCP/IP .

L'une des suggestions est de vérifier les paramètres du registre pour la clé TcpTimedWaitDelay sous HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. Cette entrée contrôle "la durée pendant laquelle une connexion reste dans l'état TIME_WAIT lorsque la connexion est en train d'être fermée". Vous avez peut-être une valeur très longue La valeur par défaut est de 240 secondes.

Vous pouvez également vérifier si vous pouvez tracer les processus à l'origine des connexions TIME_WAIT et voir s'il existe un paramètre de configuration permettant de fermer les ports plus rapidement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X