Qué es el archivo hosts de Windows y cómo editarlo

Antes de que existiera el DNS, cada ordenador tenía una lista local de nombres y direcciones IP. Esa lista sigue viva en cada Windows: es el archivo hosts, y sigue siendo utilísima para desarrolladores, administradores y cualquiera que quiera redirigir o bloquear un dominio en un equipo concreto. Esta guía explica cómo funciona, cómo editarlo sin tropezar con los permisos, para qué sirve en la práctica y qué hacer cuando un cambio parece no surtir efecto.
Dónde está y cómo funciona
La ruta es C:\Windows\System32\drivers\etc\hosts (sin extensión). Cuando una aplicación necesita la dirección IP de un nombre, Windows consulta primero la caché de resolución y el archivo hosts, y solo si no encuentra nada pregunta al servidor DNS. Por eso lo que pongas ahí gana siempre al DNS: si un dominio aparece en el archivo, se usa esa IP y no se pregunta a nadie más.
El formato es sencillo: una entrada por línea, con la IP, uno o varios espacios (o tabulaciones) y el nombre. Puedes poner varios nombres para la misma IP separados por espacios, y las líneas que empiezan por # son comentarios. No admite comodines: *.miempresa.com no funciona, cada nombre debe escribirse completo.
# Ejemplos de archivo hosts
192.168.1.50 nas.local
192.168.1.60 impresora.casa impresora
127.0.0.1 web-en-pruebas.miempresa.com
::1 web-en-pruebas.miempresa.com # el mismo nombre para IPv6
En un Windows recién instalado, el archivo solo contiene comentarios explicativos: el nombre localhost lo resuelve el propio sistema. El archivo hosts afecta a todos los usuarios del equipo, no solo al que lo edita.
Cómo editarlo (necesitas ser administrador)
- Pulsa Inicio, escribe Bloc de notas, clic derecho → Ejecutar como administrador.
- Archivo → Abrir → pega la ruta
C:\Windows\System32\drivers\etc\hosts(elige «Todos los archivos» en el filtro para que aparezca). - Añade tus líneas al final y guarda.
Si prefieres la terminal, desde PowerShell como administrador:
Add-Content -Path $env:SystemRoot\System32\drivers\etc\hosts -Value '192.168.1.50 nas.local'
# Vaciar la caché DNS para que el cambio se aplique al momento
ipconfig /flushdns
# Ver solo las líneas activas (sin comentarios ni líneas vacías)
Get-Content $env:SystemRoot\System32\drivers\etc\hosts | Where-Object { $_.Trim() -and $_ -notmatch '^\s*#' }
Hay una tercera opción más cómoda: Microsoft PowerToys incluye un editor del archivo hosts con interfaz gráfica, que gestiona los permisos de administrador por ti, permite activar y desactivar entradas con un interruptor y añade comentarios. Es la mejor opción si lo modificas a menudo. Y, si trabajas también con Linux o macOS, el equivalente es el archivo /etc/hosts, con exactamente el mismo formato (puedes ver más sobre cómo moverte por ese sistema en nuestra guía de comandos básicos de la terminal de Linux).
Usos prácticos que merecen la pena
Probar una web antes de migrarla
Es el uso estrella entre desarrolladores. Imagina que vas a mover miweb.com a un servidor nuevo con la IP 203.0.113.10. Añade esta línea en tu equipo:
203.0.113.10 miweb.com www.miweb.com
Ahora, en tu equipo (y solo en el tuyo), el dominio apunta al servidor nuevo, y puedes comprobar que todo funciona antes de cambiar el DNS real. Cuando termines, elimina o comenta la línea para no olvidar que lo hiciste: es la causa más frecuente de «yo veo la web antigua y tú la nueva» semanas después. Si tienes un servidor propio, monta tu entorno de pruebas siguiendo la guía de instalar un servidor web con Apache en Ubuntu.
Existe una alternativa que no toca ningún archivo: con curl puedes forzar la resolución solo para una petición:
curl --resolve miweb.com:443:203.0.113.10 https://miweb.com/ -I
Nombres cómodos en tu red local
Entradas como nas.local o impresora.casa te permiten recordar nombres en vez de direcciones IP, sin montar un servidor DNS. Pero asegúrate de que el equipo tiene siempre la misma IP (reserva en el router o IP fija), porque si cambia, la entrada quedará apuntando a ninguna parte.
Bloquear dominios concretos
Apuntar un dominio a 0.0.0.0 (o a 127.0.0.1) lo deja inaccesible en ese equipo. Si quieres bloquear también IPv6, añade una línea con ::. Es útil para bloqueos puntuales, pero tiene límites: no admite comodines y algunas aplicaciones resuelven los nombres por su cuenta, saltándose el archivo. Para un bloqueo serio y centralizado, es mejor un DNS con filtrado, como Pi-hole, o el filtro de tu cortafuegos.
Cómo comprobar qué resuelve cada herramienta
Un detalle que desconcierta a muchos: nslookup ignora el archivo hosts y consulta directamente al servidor DNS, así que puede darte una respuesta distinta de la que usa tu navegador. Para ver lo que realmente usa Windows:
ping miweb.com # usa hosts y la caché, como cualquier aplicación
Resolve-DnsName miweb.com # consulta DNS (puede ignorar el archivo hosts)
Test-NetConnection miweb.com -Port 443 # comprueba que el puerto responde en esa IP
ipconfig /displaydns | Select-String miweb
Si ping muestra la IP que escribiste en el archivo, la entrada funciona. Para más técnicas de diagnóstico de red desde PowerShell, repasa los 10 comandos de PowerShell imprescindibles.
Problemas típicos y sus causas
- «No me deja guardar» o «Acceso denegado»: no abriste el editor como administrador.
- «El cambio no hace efecto»: ejecuta
ipconfig /flushdnsy cierra y abre el navegador. Chrome y Edge tienen su propia caché interna: enchrome://net-internals/#dns(oedge://net-internals/#dns) puedes vaciarla. - «Se guardó como hosts.txt»: el Bloc de notas añadió extensión; guárdalo con el tipo «Todos los archivos» y sin extensión.
- La entrada no funciona con un puerto: el archivo hosts solo asocia nombres con IP, no con puertos. Si necesitas redirigir
miweb.coma un servicio en el puerto 8080, necesitas un proxy inverso o una redirección de puertos. - Con VPN o proxy, el nombre sigue resolviéndose distinto: algunos clientes VPN y proxies resuelven los nombres en el servidor remoto, ignorando tu archivo hosts.
- El navegador usa DNS seguro (DNS sobre HTTPS): en algunos casos puede saltarse la resolución del sistema. Prueba con
pingpara comprobar si la entrada es correcta antes de culpar al archivo. - El antivirus lo revierte: algunos protegen el archivo hosts contra cambios, porque el malware lo usa para desviar el tráfico; añade una exclusión si el cambio es tuyo y consciente.
Seguridad: el archivo hosts como vector de ataque
Precisamente porque gana al DNS, el malware lo utiliza para redirigir webs de bancos o de actualizaciones de seguridad hacia páginas falsas. Si una web conocida se comporta de forma extraña solo en un equipo, o si no puedes abrir las páginas de tu antivirus, revisa el archivo. Una línea que no recuerdas haber añadido (sobre todo con dominios de bancos, de Microsoft o de buscadores) es motivo de alarma. Muchas veces el ataque empieza con un correo falso, así que conviene repasar qué es el phishing y cómo detectarlo.
Si tu archivo está lleno de entradas ajenas, puedes restaurar el contenido predeterminado: bastan unas líneas de comentarios (las que trae Windows de serie) y el sistema funcionará igual. Después, analiza el equipo con tu antivirus.
Contenido original de un archivo hosts limpio
Si necesitas restaurar el archivo, este es el aspecto de uno de fábrica en Windows 10 y 11 (extracto): solo comentarios, sin ninguna entrada activa.
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# Each entry should be kept on an individual line, and the IP address
# should be placed in the first column followed by the corresponding host name.
#
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
En una empresa: mejor DNS que archivos hosts
Gestionar entradas en el archivo hosts equipo por equipo no escala: tarde o temprano habrá diferencias entre máquinas y nadie recordará por qué. En una red corporativa, crea esos nombres en el DNS interno (por ejemplo, en el servidor de Active Directory) y reserva el archivo hosts para pruebas temporales y casos excepcionales.
Preguntas frecuentes
¿Hay que reiniciar para que el cambio se aplique?
No. Windows detecta el cambio del archivo. Si no ves el efecto inmediato, vacía la caché con ipconfig /flushdns y reinicia el navegador.
¿Puedo poner el mismo nombre dos veces con IP distintas?
Windows utiliza la primera entrada que encuentre para ese nombre, así que no sirve para repartir carga entre servidores. Mantén una sola IP por nombre (y una para IPv6, si hace falta).
¿Qué diferencia hay entre 0.0.0.0 y 127.0.0.1 al bloquear?
Ambas dejan el sitio inaccesible. Con 127.0.0.1 la conexión se dirige a tu propio equipo, y si tienes un servidor web local puede responder algo inesperado; con 0.0.0.0 la conexión falla de inmediato, por lo que suele preferirse para bloqueos.
Conclusión
El archivo hosts es la herramienta más simple que existe para manipular la resolución de nombres: una línea de texto y un flushdns. Como siempre gana al DNS, recuerda revisarlo cuando «una web no carga solo en este equipo» o cuando termines una prueba: más de un misterio de red termina ahí. Y si lo usas a menudo, instala PowerToys y olvídate de los permisos.
Guías relacionadas
- Test-NetConnection: guía del cmdlet de PowerShell
- No se pudo contactar con el controlador de dominio de Active Directory
Para ver qué responde realmente el DNS, sin pasar por el archivo hosts, consulta la guía de nslookup en Windows.