Archivo hosts: dónde está y cómo editarlo

Publicado:

15 min de lectura

Acar Diveroli
Autor: Acar Diveroli
Líneas tenues de hosts rotas ante un archivo de trazo grueso; en él, una línea azul asigna 203.0.113.10 a test.example.com

Tu web se ha mudado a un servidor nuevo y quieres verla allí antes que el resto del mundo. O una guía de instalación te pide «añadir una línea al archivo hosts», y no encuentras el archivo o el Bloc de notas se niega a guardarlo. Los tres casos llevan al mismo archivo de texto pequeño que tiene cada ordenador con Windows, macOS o Linux.

En este artículo verás dónde está el archivo, cómo lo usa tu ordenador y cómo editarlo en Windows 11 y 10, macOS y Linux. Después pasamos al formato de las líneas, al malware, a los pasos de Microsoft para restablecerlo y a por qué el tráfico que pasa por un proxy lo ignora.

¿Qué es el archivo hosts?

El archivo hosts es una tabla de búsqueda local: cada línea dice «este nombre está en esta dirección IP», y tu ordenador se lo cree sin preguntar a nadie más. Una dirección IP es el número que usan los ordenadores para encontrarse, como 203.0.113.10.

Normalmente esa tarea corresponde al DNS (Domain Name System, sistema de nombres de dominio), el servicio de directorio de internet que convierte nombres como example.com en direcciones; la consulta completa se explica en ¿Qué es el DNS?. El archivo hosts es más antiguo que el DNS. El RFC 1034, el estándar de DNS de 1987, recuerda que cada ordenador de la red de los primeros tiempos descargaba una misma lista de nombres, HOSTS.TXT, y que esa lista no pudo seguir el ritmo cuando la red creció. El archivo hosts de hoy funciona igual, salvo que la lista es tuya y solo tu ordenador la lee.

¿Dónde está el archivo hosts?

La ruta es fija en todos los sistemas de escritorio, y el archivo está protegido para que solo un administrador pueda cambiarlo.

SistemaUbicaciónQuién puede cambiarlo
Windows 11 y 10C:\Windows\System32\drivers\etc\hostsUn administrador
macOS/etc/hostsUn administrador, con sudo
Linux/etc/hostsEl usuario root, con sudo
AndroidLa partición del sistema, de solo lecturaNadie, salvo que el teléfono tenga acceso root

Microsoft escribe la carpeta de Windows como %WinDir%\System32\drivers\etc, una forma que también funciona cuando Windows está en otra unidad; si la escribes en el cuadro de búsqueda de Inicio, se abre la carpeta. El archivo se llama hosts, sin extensión. En un Mac, el archivo predeterminado ya trae líneas de localhost que el comentario de Apple pide no cambiar, así que añade las tuyas debajo.

¿Cómo usa tu ordenador el archivo hosts?

Cada vez que un programa necesita la dirección de un nombre, el sistema operativo recorre sus fuentes en orden y se detiene en la primera respuesta:

  1. Un programa pide un nombre, por ejemplo el navegador pide test.example.com.
  2. Se consulta el archivo hosts. Windows carga sus líneas por adelantado en la caché del cliente DNS, como explica la documentación de ipconfig de Microsoft.
  3. Se revisan las respuestas DNS recientes de la caché, así que un nombre consultado hace un minuto no necesita una pregunta nueva.
  4. Se pregunta al servidor DNS, normalmente tu router o el resolutor de tu proveedor de internet.
  5. Gana la primera respuesta. Si el archivo hosts tiene una línea para el nombre, los pasos 3 y 4 no llegan a ocurrir para él.

En Linux, la línea hosts: de /etc/nsswitch.conf fija el orden, y files significa ahí el archivo hosts. El DNS seguro del navegador tampoco se salta el archivo: Chromium, el motor de Chrome y Edge, consulta el archivo hosts antes de su búsqueda cifrada, y la documentación de Firefox dice que los nombres que figuran en él nunca se envían a su resolutor de DNS sobre HTTPS.

¿Cómo se edita el archivo hosts en Windows 11 y 10?

Usa el Bloc de notas abierto como administrador; sin ese paso, Windows no te deja guardar. Los pasos son los mismos en Windows 11 y 10:

  1. Abre Inicio, escribe Bloc de notas, haz clic con el botón derecho en Bloc de notas en los resultados y selecciona Ejecutar como administrador.
  2. Acepta el aviso del Control de cuentas de usuario que pregunta si la aplicación puede hacer cambios en tu dispositivo.
  3. En el Bloc de notas, elige Archivo > Abrir, pega C:\Windows\System32\drivers\etc\hosts en el cuadro Nombre de archivo y pulsa Intro. Si prefieres ir navegando hasta la carpeta, cambia la lista de tipos de archivo a Todos los archivos (*.*); mientras solo se muestren documentos de texto, el archivo hosts no aparece, porque no termina en .txt.
  4. Ve al final del archivo y añade tu línea, por ejemplo 203.0.113.10 test.example.com.
  5. Elige Archivo > Guardar para guardarlo con el mismo nombre y después cierra y vuelve a abrir el navegador.

Si el Bloc de notas dice que no tienes permiso o te ofrece guardar una copia en otro sitio, no se abrió como administrador. Ciérralo y vuelve a empezar por el paso 1: una copia en Documentos o en el escritorio nunca se lee.

Una alternativa gráfica: Hosts File Editor de PowerToys

La colección gratuita PowerToys de Microsoft incluye un Hosts File Editor que muestra el archivo como una lista. Ábrelo desde el icono de PowerToys en la bandeja del sistema, selecciona Nueva entrada y rellena la dirección, el nombre de host y, si quieres, un comentario; el interruptor Activo enciende o apaga cada entrada. Se ejecuta como administrador de forma predeterminada y guarda una copia de seguridad con fecha antes de que edites.

¿Cómo se edita el archivo hosts en un Mac?

En macOS el archivo se edita en el Terminal con sudo, que ejecuta un solo comando con permisos de administrador:

  1. Abre el Terminal: haz clic en Spotlight en la barra de menús y escribe Terminal, o abre la carpeta /Aplicaciones/Utilidades en el Finder y haz doble clic en Terminal.
  2. Escribe sudo nano /etc/hosts y pulsa Retorno.
  3. Introduce la contraseña de inicio de sesión de tu Mac. No aparece nada en pantalla mientras escribes; es normal.
  4. Baja con las flechas por debajo de las líneas que ya existen y escribe tu entrada.
  5. Pulsa Control-O y después Retorno para guardar, y Control-X para salir de nano.

Si el navegador sigue usando la dirección antigua, ejecuta sudo killall -HUP mDNSResponder, el comando que el artículo de soporte archivado de Apple indica para vaciar la caché de DNS en OS X 10.10.4 y versiones posteriores, y vuelve a abrir el navegador. Reiniciar el Mac también vacía la caché.

¿Cómo se edita el archivo hosts en Linux?

Los pasos son los mismos que en el Mac: abre un terminal, ejecuta sudo nano /etc/hosts, añade la línea, guarda con Ctrl+O y sal con Ctrl+X. Deja las líneas que creó tu distribución, como las de localhost, y reinicia cualquier programa que siga usando la dirección antigua.

¿Cómo se escribe una entrada en el archivo hosts?

Cada línea activa es una dirección IP, luego al menos un espacio o una tabulación, y luego uno o varios nombres. La página de manual hosts(5) de Linux da el formato como IP_address canonical_hostname [aliases...] y trata como comentario todo lo que va desde un # hasta el final de la línea; Windows lee el mismo formato. Un ejemplo con direcciones y nombres reservados para documentación:

text
# Copia de pruebas de la tienda, borrar tras el lanzamiento
203.0.113.10    test.example.com    shop.example.com

# Proyecto local
127.0.0.1       myapp.test

# Desactivada
# 198.51.100.7  old.example.com

La primera entrada envía dos nombres a un mismo servidor, y la última no hace nada porque el # la desactiva. 127.0.0.1 es la dirección de loopback, que siempre significa «este ordenador»; qué funciona ahí se explica en ¿Qué es localhost?.

Hay tres límites que suelen pillar a la gente. Los nombres tienen que coincidir exactamente, así que una línea para example.com no cubre www.example.com, y los comodines como *.example.com no funcionan. El archivo solo guarda direcciones: nada de http://, rutas ni números de puerto. Y cada línea admite una sola dirección, así que un nombre con una dirección IPv4 y otra IPv6 necesita dos líneas.

¿Cómo hacer que un cambio surta efecto?

Guarda el archivo y después cierra y vuelve a abrir el navegador, que tiene una caché breve propia. Si sigue respondiendo la dirección antigua, vacía la caché de DNS de Windows: escribe cmd en el cuadro de búsqueda de Inicio, haz clic con el botón derecho en Símbolo del sistema, selecciona Ejecutar como administrador y ejecuta:

bash
ipconfig /flushdns

Usa la ventana de administrador. En el equipo con Windows 11 (versión 25H2) que probamos, un Símbolo del sistema normal rechazó el comando con el mensaje de que hace falta elevación, que en un sistema en inglés dice The requested operation requires elevation. (en español, aproximadamente: la operación solicitada requiere elevación). Microsoft describe /flushdns como el vaciado de las respuestas que Windows ha reunido del DNS, incluidas las búsquedas fallidas; no toca el archivo hosts en sí.

¿Para qué sirve el archivo hosts?

  • Probar un sitio web en un servidor nuevo antes de cambiar los registros DNS del dominio, un caso que menciona la documentación de PowerToys de Microsoft.
  • Dar nombres cortos como myapp.test a proyectos de desarrollo locales, apuntando a tu propio ordenador.
  • Bloquear dominios de anuncios y rastreadores en tu propio ordenador, dirigiéndolos a una dirección donde nada responde.

¿Puede el malware cambiar el archivo hosts?

Sí, y por eso el archivo está protegido. Como tiene prioridad sobre el DNS, una sola línea oculta puede enviar el nombre de tu banco a la dirección de un atacante mientras la barra de direcciones sigue mostrando el nombre correcto. Microsoft Defender puede marcar un archivo modificado como SettingsModifier:Win32/PossibleHostsFileHijack, y Microsoft da el motivo sin rodeos: el malware suele editar el archivo para redirigir a las personas a sitios maliciosos.

HTTPS limita el daño: un servidor falso normalmente no puede mostrar un certificado válido para el nombre real, así que el navegador te avisa. Para revisar el archivo, ábrelo en el Bloc de notas (para leerlo no hacen falta permisos de administrador) y busca líneas que no empiecen por #. Un archivo predeterminado de Windows 10 u 11 no tiene ninguna; el de nuestro equipo de pruebas con Windows 11 tenía 22 líneas, todas comentarios. Si encuentras entradas que nunca añadiste, haz un análisis completo con tu software de seguridad y después restablece el archivo.

¿Cómo se restablece el archivo hosts al valor predeterminado?

La guía de restablecimiento de Microsoft para Windows 11 y 10 sustituye el archivo y conserva el antiguo como copia de seguridad:

  1. Abre el Bloc de notas y pega el texto predeterminado de la página de Microsoft.
  2. Selecciona Archivo > Guardar como, escribe "hosts" con las comillas en Nombre de archivo, cambia el tipo de archivo a Todos los archivos (*.*) y guárdalo en el escritorio.
  3. Abre la carpeta %WinDir%\System32\drivers\etc, haz clic con el botón derecho en el archivo hosts actual, selecciona Cambiar nombre y llámalo hosts.old.
  4. Mueve el archivo nuevo del escritorio a la carpeta y selecciona Continuar si Windows pide permiso de administrador.

En ese texto predeterminado hasta las líneas de localhost son comentarios, porque Windows resuelve localhost por su cuenta. En un Mac o en Linux, restablecer significa borrar las líneas que añadiste y conservar las líneas originales de localhost.

¿Por qué el archivo hosts no se aplica cuando usas un proxy?

El archivo hosts solo funciona cuando tu propio ordenador busca el nombre, y con un proxy a menudo no lo hace. Un proxy es un servidor que abre conexiones a los sitios en tu nombre, de modo que el sitio ve la dirección IP del proxy en lugar de la tuya.

Con un proxy HTTP o HTTPS, el navegador entrega el nombre del sitio al proxy (en los sitios HTTPS, en una solicitud CONNECT test.example.com:443), y el proxy lo resuelve con su propio DNS. Con SOCKS5 depende del programa: el manual de curl dice que --socks5 (o socks5://) resuelve el nombre en local, mientras que --socks5-hostname (o socks5h://) deja que lo resuelva el proxy. Lo comprobamos con curl 8.22 y un proxy de pruebas local: con socks5h:// el proxy recibió el nombre tal cual, y con socks5:// curl buscó primero el nombre por su cuenta y se detuvo con curl: (6) Could not resolve host: test.example.com.

Así que, cuando un cambio en hosts no hace nada, busca un proxy o una VPN activos y, para una prueba en el servidor nuevo, desactívalos o añade el nombre a la lista de excepciones del proxy. La misma resolución en el lado del proxy evita que las consultas DNS se filtren fuera de una conexión por proxy, como se describe en Fugas de WebRTC y DNS.

Para programas fuera del navegador, nuestros Proxies SOCKS5 admiten la resolución DNS remota, así que la consulta se hace en la salida.

Los Proxies residenciales, con el país y la ciudad que elijas, también resuelven los nombres en su salida, de modo que el servidor que un sitio te asigna corresponde a esa ubicación.

Errores frecuentes

  • Guardar el archivo como hosts.txt. En el Explorador de archivos, activa Ver > Mostrar > Extensiones de nombre de archivo para ver el nombre real y luego quita el .txt.
  • Editarlo sin permisos de administrador y guardar una copia en otra carpeta, que Windows nunca lee.
  • Escribir http://, una ruta o un puerto en la línea, o esperar que example.com cubra www.example.com.
  • Olvidar una línea de prueba, de modo que semanas después el sitio parece roto solo en ese ordenador.
  • Descargar un archivo hosts ya hecho de un sitio desconocido. Decide adónde envía tu ordenador cada nombre que contiene, bancos incluidos.

Guía de decisión

Lo que necesitasQué hacer
Ver tu sitio en un servidor nuevo antes de que cambie el DNSAñade una línea IP nombre, prueba y después bórrala
Un nombre local corto para un proyectoApunta un nombre .test a 127.0.0.1
El Bloc de notas no guarda el archivoVuelve a abrir el Bloc de notas con Ejecutar como administrador
Un cambio no surte efectoRevisa el nombre y la extensión, reabre el navegador, vacía la caché de DNS, desactiva el proxy o la VPN
Líneas que nunca añadisteBusca malware y después restablece el archivo con los pasos de Microsoft
Bloquear anuncios en todos los dispositivos de casaUn resolutor DNS con filtrado en el router

Preguntas frecuentes

¿Dónde está el archivo hosts en Windows 11?

En C:\Windows\System32\drivers\etc\hosts, el mismo sitio que en Windows 10. Si escribes %WinDir%\System32\drivers\etc en el cuadro de búsqueda de Inicio, se abre la carpeta en cualquier unidad.

¿Por qué no funciona mi archivo hosts?

Lo habitual es que el archivo se guardara como hosts.txt o en la carpeta equivocada, que el nombre no coincida exactamente (www incluido), que el navegador o Windows conserven la respuesta antigua, o que un proxy o una VPN resuelvan los nombres por ti. Revísalo en ese orden.

¿Por qué no puedo guardar el archivo hosts?

Porque solo un administrador puede cambiarlo. Cierra el Bloc de notas, ábrelo de nuevo con Ejecutar como administrador y abre el archivo desde dentro. Si tu software de seguridad bloquea el cambio, asegúrate de que la línea la añadiste tú.

¿Qué extensión tiene el archivo hosts?

Ninguna. El archivo se llama hosts, y añadirle .txt lo convierte en otro archivo que Windows ignora.

¿Puedo bloquear sitios web con el archivo hosts?

En tu propio ordenador, sí: apunta los nombres del sitio a una dirección donde nada responde. Es fácil de deshacer, solo cubre nombres exactos en ese ordenador y deja de funcionar cuando un proxy o una VPN resuelven los nombres, así que no es un control parental ni una herramienta para aplicar políticas.

¿Se puede editar el archivo hosts en Android?

En un teléfono normal, no. Android guarda el archivo en su partición del sistema, que es de solo lectura y está comprobada por el arranque verificado (Verified Boot), así que cambiarlo exige acceso root en el teléfono. Para filtrar dominios de anuncios o rastreadores, usa en su lugar DNS privado con un proveedor que filtre.

En resumen

El archivo hosts es una lista local y breve de nombres y direcciones IP que tu ordenador lee antes de preguntar a un servidor DNS. Está en C:\Windows\System32\drivers\etc\hosts en Windows y en /etc/hosts en macOS y Linux, no tiene extensión y hacen falta permisos de administrador para editarlo. Escribe una dirección y sus nombres por línea, reabre el navegador o vacía la caché de DNS después de un cambio, y revisa de vez en cuando si el archivo tiene líneas que nunca añadiste. Un proxy resuelve los nombres por su cuenta, así que tus entradas no se aplican al tráfico que pasa por él; si tu trabajo necesita conexiones desde otros países y redes, compara las opciones en nuestra página de productos proxy.