Erreur Tcpip: la demande a échoué car tous ces ports sont en cours d'utilisation

8

Aujourd'hui, ma machine n'a plus pu accéder à Internet. Je peux toujours accéder à certaines ressources du réseau local. Quand j'ai regardé dans le journal des erreurs, j'ai vu l'avertissement tcpip suivant:

Une demande d'allocation d'un numéro de port éphémère à partir de l'espace de port UDP global a échoué en raison de l'utilisation de tous ces ports.

J'ai couru netstat -anobet dans la sortie DNScache est répertorié des milliers de fois (à partir du port 50000 jusqu'à 65536).

sortie netstat

C'est la deuxième fois que cela m'arrive. Tuer le processus DNSClient sur la base des instructions trouvées ici a fonctionné, mais je voudrais comprendre ce qui cause ce problème.

Mise à jour: Lorsque ce problème se produit, je peux toujours me connecter avec des programmes qui ont utilisé DNS pour résoudre un nom d'hôte avant le début du problème. Par exemple, je peux continuer à discuter avec des amis avec Pidgin. Je peux également me connecter à des sites Web directement à l'aide de l'adresse IP.

cmorse
la source
Mise à jour: cela m'est arrivé plusieurs fois cette semaine. J'aimerais vraiment de l'aide pour trouver la cause du problème, alors j'ajoute une prime.
cmorse
Vérifiez les paramètres de votre routeur, car un certain nombre d'entre eux ont un paramètre qui limite le nombre de connexions au même hôte, essayez de redémarrer le routeur pour voir si cela résout le problème, si oui, regardez dans les paramètres avancés sous DoS et recherchez le nombre de connexions par hôte
Ian
@Ian j'exécute dd-wrt sur mon routeur. Je me suis connecté et vérifié et il y avait 143 connexions IP actives (3% du maximum). Je peux vérifier à nouveau demain pour voir si le nombre est plus élevé lorsque le problème se produit. J'ai vu le nombre de connexions dépasser largement les 1 000 sans aucun problème.
cmorse
1
Ce qui se passe réellement ici, c'est que le service Dnscache lie tous les ports d'écoute qu'il est autorisé à utiliser, puis échoue lorsqu'il essaie d'en lier un autre. Je n'ai pas trouvé d'informations sur la cause et je n'ai pas de boîte Windows 8 pour expérimenter; en attendant, je vous conseille de désactiver le service Dnscache via la console des services (Démarrer -> Exécuter -> services.msc, OK). L'exécution sans cela empêchera la mise en cache des résultats de la résolution de noms, ce qui ralentira légèrement les demandes réseau car davantage de requêtes DNS sont nécessaires, mais devrait mettre un terme au problème bien pire que vous voyez.
Aaron Miller
1
Idéalement, je le ferais aussi - mais cela peut prendre un certain temps, et la désactivation du service semble offrir un intervalle décent afin que la résolution DNS n'échoue pas au hasard et nécessite une intervention manuelle pour reprendre, d'ici à chaque fois qu'une solution se présente lui-même.
Aaron Miller

Réponses:

6

Je l'ai compris! C'était le HealthAlertsSvc (Windows Server Health Service). Il semble que le service de santé sur ma machine Windows Home Server 2011 s'est écrasé, et cela a révélé un bogue dans HealthAlertsSvc côté client où il ne libérerait pas correctement les ports UDP.

Pour vérifier que tel était bien le cas. J'ai désactivé le service côté serveur et sur mon bureau. Dès que j'ai réactivé le service sur mon bureau, le nombre de connexions UDP laissées ouvertes a commencé à augmenter lentement. Après avoir redémarré le service sur le serveur, un grand nombre de connexions UDP ont été immédiatement libérées et la liste n'a plus augmenté.

cmorse
la source