Problema

En entornos Windows es frecuente que, tras ejecutar varias herramientas anti‑malware, la conexión a Internet deje de funcionar aunque el adaptador Wi‑Fi o Ethernet siga activo. El síntoma típico es la imposibilidad de resolver nombres de dominio: los navegadores muestran errores de DNS, nslookup devuelve Server failed y los comandos ping a direcciones externas fallan aunque se pueda hacer ping a la puerta de enlace local.

Este tipo de bloqueo no es exclusivo de un caso concreto; ocurre cuando alguna capa de la pila de red (hosts, proxy, NCSI, filtros NDIS) queda corrupta o en estado “pendiente” después de la desinfección. La solución requiere una revisión sistemática de los componentes que intervienen en la resolución de nombres y en la autorización de tráfico saliente.

Causa

Los orígenes más habituales de la pérdida de conectividad DNS tras una limpieza de malware son:

  1. Entradas maliciosas en el archivo hosts
    Los troyanos añaden redirecciones a dominios críticos (p.ej. www.microsoft.com) para interceptar tráfico. Si la herramienta anti‑malware elimina esas líneas pero deja el archivo con formato incorrecto (UTF‑8 con BOM, líneas en blanco con caracteres invisibles), Windows ignora todo el archivo y falla la resolución.

  2. Configuración de proxy persistente
    Algunos agentes modifican las claves del registro HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings (ProxyEnable, ProxyServer). La eliminación parcial deja el proxy activo sin servidor válido, lo que bloquea todo el tráfico HTTP/HTTPS y, en algunos casos, impide que el cliente DNS use UDP.

  3. Filtros NDIS/NDISWAN o drivers de seguridad
    Soluciones como Kaspersky, Bitdefender o herramientas de rootkit pueden instalar filtros de red (NDIS). Si el proceso de desinstalación no elimina los filtros, Windows sigue enviando paquetes a un driver inexistente, lo que corta la pila de red.

  4. Servicio NCSI (Network Connectivity Status Indicator) deshabilitado
    Windows usa NCSI para validar la conectividad mediante una petición a www.msftncsi.com. Si la clave EnableActiveProbing está a 0, el sistema marca la red como “Sin acceso” y algunos firewalls de terceros bloquean la salida.

  5. Registros de DNS corruptos o caché dañada
    La caché de DNS puede quedar con respuestas negativas o con TTL expirados que nunca se renuevan, especialmente después de cambiar el servidor DNS sin reiniciar el cliente.

Solución

El objetivo es restablecer la pila de red a un estado limpio, sin perder configuraciones legítimas. El proceso se divide en tres fases: limpieza, reconfiguración y verificación.

1. Limpieza profunda

  • Reemplazar el archivo hosts
    Renombrar el archivo actual y crear uno nuevo vacío con codificación ANSI.

    move %SystemRoot%\System32\drivers\etc\hosts %SystemRoot%\System32\drivers\etc\hosts.bak
    echo. > %SystemRoot%\System32\drivers\etc\hosts
    
  • Eliminar configuraciones de proxy

    reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /f
    reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /f
    reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /f
    reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /f
    
  • Desinstalar filtros NDIS huérfanos
    Abrir el Administrador de dispositivos → Ver → Mostrar dispositivos ocultos → Expandir “Adaptadores de red”. Desinstalar cualquier entrada que tenga “NDIS Filter” o que pertenezca a un antivirus ya desinstalado. Reiniciar.

  • Restablecer NCSI

    reg add "HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d 1 /f
    

2. Reconfiguración de la pila de red

  • Resetear Winsock y la configuración IP

    netsh winsock reset
    netsh int ip reset
    netsh advfirewall reset
    
  • Renovar la dirección DHCP y limpiar la caché DNS

    ipconfig /release
    ipconfig /renew
    ipconfig /flushdns
    
  • Asignar servidores DNS públicos (Google y Cloudflare) de forma estática para descartar problemas de ISP.

    netsh interface ip set dns name="Ethernet" static 8.8.8.8 primary
    netsh interface ip add dns name="Ethernet" 1.1.1.1 index=2
    
  • Reiniciar servicios críticos

    net stop dnscache
    net start dnscache
    net stop nlasvc
    net start nlasvc
    

3. Verificación

  1. Ping a la puerta de enlace

    ping 192.168.1.1
    

    Respuesta exitosa indica que la capa L2/L3 funciona.

  2. Ping a un dominio externo

    ping www.google.com
    

    Si falla, pasa al paso 3.

  3. Consulta DNS explícita

    nslookup www.google.com 8.8.8.8
    

    Respuesta correcta confirma que el cliente DNS puede usar el servidor configurado.

  4. Comprobar NCSI
    Abrir http://www.msftncsi.com/ncsi.txt en el navegador; debe devolver Microsoft NCSI. Si el archivo no se carga, revisa firewalls locales.

  5. Revisar tabla de rutas

    route print
    

    La ruta predeterminada (0.0.0.0/0) debe apuntar al router local.

Si todos los pasos anteriores son satisfactorios, la conectividad debería estar restaurada.

Cuándo aplicar esta solución

  • Síntomas: error de DNS en todos los navegadores, nslookup devuelve Server failed, ping a dominios externos falla mientras que la puerta de enlace responde.
  • Entorno: Windows 10/11, después de ejecutar herramientas anti‑malware, desinstalar antivirus o modificar el archivo hosts.
  • Exclusiones: Si la red funciona en modo seguro con networking, el problema probablemente está en un servicio o driver de terceros; en ese caso, el procedimiento de filtros NDIS es esencial. Si la pérdida de conectividad ocurre sólo en una aplicación específica, el problema puede estar en reglas de firewall a nivel de aplicación y no requiere el reset completo.

Código

move %SystemRoot%\System32\drivers\etc\hosts %SystemRoot%\System32\drivers\etc\hosts.bak
echo. > %SystemRoot%\System32\drivers\etc\hosts
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d 1 /f
netsh winsock reset
netsh int ip reset
netsh advfirewall reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
netsh interface ip set dns name="Ethernet" static 8.8.8.8 primary
netsh interface ip add dns name="Ethernet" 1.1.1.1 index=2
net stop dnscache
net start dnscache
net stop nlasvc
net start nlasvc

Verificación

  1. Ejecutar ping 8.8.8.8. Si responde, la capa IP está operativa.
  2. Ejecutar nslookup www.microsoft.com. Devolver una dirección IPv4 válida confirma DNS.
  3. Abrir http://www.msftncsi.com/ncsi.txt en el navegador; debe mostrarse el texto “Microsoft NCSI”.
  4. Comprobar que el adaptador muestra “Conectado” y que no aparecen símbolos de advertencia en el Centro de redes y recursos compartidos.

Notas adicionales

  • Respaldo del registro: antes de borrar claves de proxy, exporta la rama HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings con reg export.
  • Filtros de terceros: algunos paquetes de seguridad (ex.: ESET, Sophos) crean varios filtros NDIS. Si persiste el problema, revisa la lista completa con netsh interface show interface y busca entradas con “Filter”.
  • Restaurar configuraciones personalizadas: después de validar la conectividad, vuelve a aplicar manualmente cualquier DNS interno o proxy corporativo necesario.
  • Formato del hosts: Windows solo acepta codificación ANSI sin BOM. Editar con Notepad++ → Encoding → ANSI evita problemas ocultos.
  • Herramientas de diagnóstico: Microsoft Network Monitor o Wireshark pueden ayudar a identificar paquetes que se pierden en la capa de enlace cuando los pasos anteriores no resuelven el problema.