Error de Tcpip: solicitud fallida debido a que todos esos puertos están en uso

8

Hoy mi máquina dejó de poder acceder a internet. Todavía puedo acceder a algunos recursos de la red local. Cuando miré en el registro de errores, vi la siguiente advertencia de tcpip:

Una solicitud para asignar un número de puerto efímero desde el espacio de puerto UDP global ha fallado debido a que todos estos puertos están en uso.

Corrí netstat -anoby en la salida dnscache figura una lista de miles de veces (comenzando desde el puerto 50000 hasta 65536).

salida netstat

Esta es la segunda vez que me pasa esto. Matar el proceso DNSClient basado en las instrucciones encontradas aquí funcionó, pero me gustaría averiguar qué está causando este problema.

Actualización: cuando ocurre este problema, todavía puedo conectarme a programas que utilizan DNS para resolver un nombre de host antes de que el problema comenzara. Por ejemplo, puedo seguir chateando con amigos con Pidgin. También puedo conectarme a sitios web directamente usando la dirección IP.

cmorse
fuente
Actualización: esto me ha pasado varias veces esta semana. Realmente me gustaría recibir ayuda para rastrear qué está causando el problema, por lo que estoy agregando una recompensa.
cmorse
Verifique la configuración de su enrutador, ya que un número tiene un par de ellos que tienen una configuración que limita la cantidad de conexiones al mismo host, intente reiniciar el enrutador para ver si eso soluciona el problema, de ser así, mire la configuración avanzada en DoS y busque el número de conexiones por host
Ian
@ Ian estoy ejecutando dd-wrt en mi enrutador. Me conecté y verifiqué y había 143 conexiones IP activas (3% del máximo). Puedo verificar nuevamente mañana para ver si el número es mayor cuando ocurre el problema. He visto que la cantidad de conexiones supera los 1,000 sin ningún problema.
cmorse
1
Lo que realmente está sucediendo aquí es que el servicio Dnscache está vinculando todos los puertos de escucha que tiene permitido usar, y luego falla cuando intenta vincular a otro. No he encontrado información sobre la causa, y no tengo un cuadro de Windows 8 con el que experimentar; Mientras tanto, recomendaría deshabilitar el servicio Dnscache a través de la consola de servicios (Inicio -> Ejecutar -> services.msc, OK). La ejecución sin ella evitará que los resultados de resolución de nombres se almacenen en caché, lo que ralentizará ligeramente las solicitudes de red a medida que se necesiten más consultas DNS, pero debería detener el problema mucho peor que está viendo.
Aaron Miller
1
Idealmente, yo también lo haría, pero eso puede llevar algo de tiempo, y deshabilitar el servicio parece que puede ofrecer un espacio intermedio decente para que la resolución de DNS no falle aleatoriamente y requiera una intervención manual para reanudar, entre ahora y cada vez que se presente una solución sí mismo.
Aaron Miller

Respuestas:

6

¡Me lo imaginé! Era HealthAlertsSvc (Servicio de mantenimiento de Windows Server). Parece que el servicio de salud en mi máquina Windows Home Server 2011 se bloqueó, y eso reveló un error en el HealthAlertsSvc del lado del cliente donde no liberaría los puertos UDP correctamente.

Para verificar que este fuera el caso. Inhabilité el servicio en el lado del servidor y en mi escritorio. Tan pronto como volví a habilitar el servicio en mi escritorio, el número de conexiones UDP que quedaron abiertas comenzó a crecer lentamente. Después de reiniciar el servicio en el servidor, una gran cantidad de conexiones UDP se liberaron de inmediato y la lista ya no creció en tamaño.

cmorse
fuente