El archivo hosts es un archivo de texto del sistema operativo que mapea nombres de dominio a direcciones IP de forma local, con prioridad absoluta sobre cualquier consulta al servidor DNS externo. Cuando el sistema operativo necesita resolver un nombre de dominio, consulta primero el archivo hosts: si el nombre aparece ahí, usa esa IP directamente sin hacer ninguna consulta DNS. Es el mecanismo de resolución de nombres más antiguo de internet, anterior al DNS mismo, y sigue siendo una herramienta imprescindible para administradores de sistemas en 2026. Sus usos más comunes son probar un sitio web en el nuevo servidor antes de cambiar el DNS, bloquear dominios no deseados, y simular entornos de producción en local.
La historia del archivo hosts: el precursor del DNS
El archivo hosts no es una herramienta reciente inventada para administradores de sistemas modernos. Es el mecanismo de resolución de nombres original de internet, anterior al DNS por más de una década.
En los años 70, cuando ARPANET era la red precursora de internet, todos los ordenadores conectados necesitaban una forma de traducir nombres legibles (como tac.mit.edu) en las direcciones numéricas de la red. La solución fue un archivo de texto centralizado llamado HOSTS.TXT, mantenido por el Stanford Research Institute (SRI) y descargado periódicamente por todos los nodos de ARPANET. El archivo contenía una lista de todos los nombres y sus IPs correspondientes, y cada ordenador lo consultaba localmente para resolver nombres.
Este sistema funcionó mientras ARPANET tuvo unos pocos cientos de nodos. Pero a principios de los 80, con la explosión del crecimiento, el archivo HOSTS.TXT se volvió inmanejable: el tráfico de descarga saturaba la red y las actualizaciones tardaban días en propagarse. En 1983, Paul Mockapetris diseñó el DNS como sistema distribuido que reemplazó al HOSTS.TXT centralizado.
Sin embargo, el archivo hosts local nunca desapareció. Todos los sistemas operativos modernos (Windows, macOS, Linux, Android, iOS) lo mantienen como mecanismo de resolución de primera línea, consultado antes que el DNS. En 2026, el archivo hosts sigue siendo una herramienta de administración cotidiana.
Dónde está el archivo hosts en cada sistema operativo
| Sistema operativo | Ruta del archivo hosts | Cómo abrirlo con permisos de edición |
|---|---|---|
| Linux (Ubuntu, Debian, CentOS, AlmaLinux, Fedora...) | /etc/hosts | sudo nano /etc/hosts o sudo vim /etc/hosts |
| macOS (Ventura, Sonoma, Sequoia...) | /etc/hosts | sudo nano /etc/hosts desde el Terminal |
| Windows 10 y 11 | C:\Windows\System32\drivers\etc\hosts | Bloc de notas ejecutado como administrador; o PowerShell como administrador |
| Android (requiere root) | /system/etc/hosts | Solo modificable con acceso root al dispositivo |
| iOS (requiere jailbreak) | /etc/hosts | Solo modificable con jailbreak; en dispositivos normales no es accesible |
El archivo hosts en Windows está protegido: intentar guardar cambios en el archivo hosts de Windows desde el Bloc de notas normal (sin privilegios de administrador) produce un error de "Acceso denegado". Debes abrir el Bloc de notas haciendo clic derecho en su icono y seleccionando "Ejecutar como administrador", y luego abrir el archivo desde ahí.
Formato del archivo hosts
El archivo hosts tiene un formato muy sencillo: cada línea que no empieza por # contiene una dirección IP seguida de uno o varios nombres de dominio separados por espacios o tabulaciones. Las líneas que empiezan por # son comentarios y son ignoradas.
# Formato básico:
# IP_DESTINO nombre-de-dominio [alias-opcional] [otro-alias]
# Entradas por defecto que vienen en todos los sistemas operativos:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
# Ejemplos de entradas personalizadas:
195.234.56.78 sys4net.com
195.234.56.78 www.sys4net.com
195.234.56.79 nuevo-servidor.sys4net.com
# Una IP puede tener varios nombres en la misma línea:
192.168.1.100 servidor-local web.local api.local
# O en líneas separadas (produce el mismo resultado):
192.168.1.100 servidor-local
192.168.1.100 web.local
192.168.1.100 api.local
# Los comentarios pueden ir al final de una línea:
195.234.56.78 sys4net.com # Servidor de producción (añadido 03/06/2026)
# IPv6 también es válido:
2001:db8::1 sys4net.comContenido por defecto del archivo hosts
Un archivo hosts recién instalado en cualquier sistema operativo contiene como mínimo estas entradas esenciales que no deben eliminarse:
# En Linux/macOS — archivo hosts por defecto:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# En Windows — archivo hosts por defecto:
# (El archivo de Windows tiene muchos comentarios explicativos además de estas entradas)
127.0.0.1 localhost
::1 localhostCómo editar el archivo hosts en cada sistema operativo
En Linux
# Abrir el archivo con nano (el editor más sencillo):
sudo nano /etc/hosts
# Abrir con vim (si prefieres vim):
sudo vim /etc/hosts
# Abrir con gedit (editor gráfico en entornos de escritorio):
sudo gedit /etc/hosts
# Añadir una entrada directamente desde la línea de comandos:
echo "195.234.56.78 nuevo-servidor.com" | sudo tee -a /etc/hosts
# Añadir múltiples entradas en un solo comando:
sudo tee -a /etc/hosts << 'EOF'
# Entradas para la migración del 03/06/2026:
195.234.56.79 tudominio.com
195.234.56.79 www.tudominio.com
195.234.56.79 api.tudominio.com
EOF
# Verificar que la entrada se añadió correctamente:
cat /etc/hosts | grep tudominio
# Hacer una copia de seguridad antes de modificar (buena práctica):
sudo cp /etc/hosts /etc/hosts.backup.$(date +%Y%m%d)
# Restaurar desde la copia de seguridad si algo sale mal:
sudo cp /etc/hosts.backup.20260603 /etc/hostsEn macOS
# Abrir el Terminal (Aplicaciones > Utilidades > Terminal)
# Abrir el archivo hosts con nano:
sudo nano /etc/hosts
# Nano: editar el archivo, guardar con Ctrl+O, confirmar con Enter, salir con Ctrl+X
# Alternativa: editar con TextEdit (interfaz gráfica):
sudo open -e /etc/hosts
# NOTA: puede que necesites guardar con permisos especiales
# Añadir una entrada directamente desde el Terminal:
echo "195.234.56.78 tudominio.com www.tudominio.com" | sudo tee -a /etc/hosts
# Verificar el contenido actual:
cat /etc/hosts
# Vaciar la caché DNS en macOS (IMPRESCINDIBLE después de modificar hosts):
# macOS Ventura, Sonoma, Sequoia (2023+):
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# macOS Monterey y anterior:
sudo killall -HUP mDNSResponder
# Verificar que el flush funcionó (el dominio ahora debe resolver a la nueva IP):
ping -c 1 tudominio.comEn Windows 10 y 11
Método 1: Bloc de notas como administrador (el más común)
- Busca "Bloc de notas" en el menú Inicio.
- Haz clic derecho en el resultado y selecciona "Ejecutar como administrador".
- Acepta el Control de Cuentas de Usuario (UAC) si aparece.
- En el Bloc de notas: Archivo > Abrir.
- En el campo de tipo de archivo, selecciona "Todos los archivos (*.*)".
- Navega a
C:\Windows\System32\drivers\etc\y abre el archivohosts. - Edita el archivo, añade tus entradas al final.
- Guarda con Ctrl+S.
Método 2: PowerShell como administrador
# Abrir PowerShell como administrador:
# Clic derecho en el botón de Inicio > Windows PowerShell (Administrador)
# Ver el contenido actual del archivo hosts:
Get-Content C:\Windows\System32\drivers\etc\hosts
# Añadir una entrada al archivo hosts:
Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "195.234.56.78 tudominio.com"
# Añadir múltiples entradas:
$entradas = @"
# Entradas para migración - 03/06/2026
195.234.56.79 tudominio.com
195.234.56.79 www.tudominio.com
"@
Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value $entradas
# Vaciar la caché DNS en Windows (IMPRESCINDIBLE después de modificar hosts):
ipconfig /flushdns
# Verificar que el dominio resuelve a la nueva IP:
ping tudominio.com -n 1Método 3: Editores especializados de hosts para Windows
Existen herramientas gráficas gratuitas que facilitan la gestión del archivo hosts en Windows:
- Hosts File Editor (de Scott Hanselman): interfaz gráfica limpia, permite activar y desactivar entradas sin borrarlas.
- Gas Mask (macOS): similar para macOS, permite gestionar múltiples perfiles de hosts.
- SwitchHosts (Windows, macOS, Linux): permite tener múltiples perfiles de hosts y cambiar entre ellos con un clic, muy útil para entornos de desarrollo.
Usos prácticos del archivo hosts
Uso 1: Probar un sitio web en el nuevo servidor antes de cambiar el DNS
Este es el uso más importante y frecuente del archivo hosts en la administración de servidores. Cuando migras un sitio web de un servidor a otro, el proceso ideal es:
- Configurar completamente el sitio en el nuevo servidor.
- Verificar que todo funciona correctamente apuntando tu equipo al nuevo servidor via el archivo hosts (solo tú ves el nuevo servidor, el resto del mundo sigue viendo el antiguo).
- Una vez verificado, cambiar el DNS globalmente para que todo el mundo apunte al nuevo servidor.
# Escenario: migras tudominio.com de 195.234.56.78 (servidor viejo)
# a 195.234.56.79 (servidor nuevo)
# Paso 1: Añade la entrada en tu archivo hosts local apuntando al servidor nuevo:
# 195.234.56.79 tudominio.com
# 195.234.56.79 www.tudominio.com
# Paso 2: Vacía la caché DNS del sistema:
# Linux: sudo resolvectl flush-caches
# macOS: sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# Windows: ipconfig /flushdns
# Paso 3: Verifica que tu equipo resuelve el dominio a la nueva IP:
ping tudominio.com -c 1
# Debe mostrar: PING tudominio.com (195.234.56.79)
# Paso 4: Abre el navegador y comprueba que el sitio funciona correctamente
# en el nuevo servidor: formularios, pagos, imágenes, velocidad, SSL, etc.
# Paso 5: Cuando todo está OK, cambia el DNS globalmente.
# Elimina la entrada del archivo hosts (ya no es necesaria)
# Paso 6: Verifica la propagación DNS en otros puntos:
dig @8.8.8.8 tudominio.com A +short # Google DNS
dig @1.1.1.1 tudominio.com A +short # Cloudflare DNSTruco profesional: para verificar que el SSL del nuevo servidor está correctamente configurado para el dominio, también puedes añadir una entrada en el hosts apuntando a la IP del nuevo servidor y acceder con tu navegador en HTTPS. El navegador verificará el certificado SSL como lo haría normalmente, confirmando que el certificado es válido para ese dominio antes de que el DNS cambie globalmente.
Uso 2: Bloquear dominios no deseados
Apuntar un dominio a 127.0.0.1 (localhost) o a 0.0.0.0 (la dirección nula) en el archivo hosts hace que el navegador y cualquier otra aplicación no puedan conectarse a ese dominio, ya que la solicitud va a la propia máquina en lugar del servidor real.
# Bloquear dominios de publicidad y tracking:
0.0.0.0 ads.ejemplo.com
0.0.0.0 tracking.analytics.com
0.0.0.0 doubleclick.net
0.0.0.0 ads.google.com
# Bloquear redes sociales para evitar distracciones durante el trabajo:
127.0.0.1 www.twitter.com
127.0.0.1 twitter.com
127.0.0.1 www.facebook.com
127.0.0.1 facebook.com
127.0.0.1 www.instagram.com
127.0.0.1 instagram.com
# Bloquear sitios de malware o phishing conocidos:
0.0.0.0 sitio-malicioso.com
0.0.0.0 phishing-bancario.net
# La diferencia entre 127.0.0.1 y 0.0.0.0:
# 127.0.0.1: redirige al servidor web local del propio equipo (si hay uno activo)
# 0.0.0.0: la conexión falla inmediatamente sin llegar a ningún servidor
# 0.0.0.0 es más rápido porque no espera a que el servidor local respondaExisten listas de hosts mantenidas por la comunidad que contienen miles de dominios de publicidad, tracking, malware y contenido no deseado para añadir al archivo hosts:
- StevenBlack/hosts (github.com/StevenBlack/hosts): la lista más completa y actualizada, con diferentes variantes (solo publicidad, publicidad + malware, publicidad + redes sociales, etc.).
- MVPS Hosts (winhelp2002.mvps.org/hosts.htm): enfocada en bloqueo de publicidad, especialmente para Windows.
- AdAway (para Android con root): usa listas de hosts para bloquear publicidad a nivel del sistema en Android.
# Descargar e instalar la lista de StevenBlack directamente:
# (Contiene más de 100.000 dominios bloqueados)
curl -s https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | \
sudo tee -a /etc/hosts > /dev/null
# Verificar cuántas entradas se añadieron:
grep "^0.0.0.0" /etc/hosts | wc -lUso 3: Entornos de desarrollo local con nombres de dominio reales
En el desarrollo web, es frecuente querer probar el sitio usando el mismo nombre de dominio que tendrá en producción, en lugar de localhost o 127.0.0.1. Esto es especialmente importante cuando el sitio tiene configuraciones que dependen del nombre de dominio (como cookies con dominio específico, CORS, o configuraciones de WordPress que incluyen la URL completa).
# Añadir entradas de desarrollo al archivo hosts:
127.0.0.1 miproyecto.local
127.0.0.1 api.miproyecto.local
127.0.0.1 admin.miproyecto.local
# También puedes usar el dominio real de producción apuntando a localhost:
# (Solo en tu equipo de desarrollo, nunca en el servidor)
127.0.0.1 tudominio.com
127.0.0.1 www.tudominio.com
# En macOS con Docker Desktop o MAMP:
127.0.0.1 mi-app.test
127.0.0.1 api.mi-app.test
# Configuración típica en el archivo de configuración de Nginx o Apache local:
# (En tu servidor web local, añade un VirtualHost para el dominio):
# server {
# listen 80;
# server_name miproyecto.local;
# root /ruta/local/del/proyecto;
# }Uso 4: Redirigir un dominio para pruebas de SSL
# Cuando instalas Let's Encrypt y quieres verificar que el SSL está bien
# antes de que el DNS apunte al servidor:
# 1. Obtén el certificado con el método DNS-01 (no necesita que el dominio
# apunte al servidor todavía):
sudo certbot certonly --manual --preferred-challenges dns -d tudominio.com
# 2. Añade el registro DNS TXT que pide Certbot (en el panel del registrar).
# 3. Una vez obtenido el certificado, apunta tu equipo al servidor via hosts:
# 195.234.56.79 tudominio.com
# 4. Verifica que el SSL funciona abriendo https://tudominio.com en tu navegador.
# Verás el certificado válido porque el hosts apunta al servidor correcto.Uso 5: Simular fallos de DNS para pruebas
# Simular que un dominio no existe (para probar el manejo de errores):
# Apuntarlo a una IP inexistente o que rechace conexiones:
192.0.2.1 dominio-que-no-existe.com
# (192.0.2.0/24 es el rango reservado para documentación según RFC 5737,
# no existe en internet real)
# Simular que un servicio externo está caído (para pruebas de resiliencia):
127.0.0.1 api.servicio-externo.com
# Si tienes un servidor mock en localhost que devuelve errores,
# puedes simular que el servicio externo está caído o degradadoCómo vaciar la caché DNS después de modificar el archivo hosts
Después de modificar el archivo hosts, los cambios pueden no ser inmediatos porque el sistema operativo y el navegador tienen su propia caché DNS. Es imprescindible vaciar esa caché para que los cambios surtan efecto de inmediato.
| Sistema operativo / Navegador | Comando para vaciar la caché DNS |
|---|---|
| Linux (systemd-resolved) | sudo systemd-resolve --flush-caches o sudo resolvectl flush-caches |
| Linux (nscd) | sudo service nscd restart o sudo nscd -i hosts |
| Linux (dnsmasq) | sudo service dnsmasq restart |
| macOS Ventura, Sonoma, Sequoia | sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder |
| macOS Monterey y anterior | sudo killall -HUP mDNSResponder |
| Windows 10 y 11 | ipconfig /flushdns (en CMD o PowerShell como administrador) |
| Google Chrome | Visitar chrome://net-internals/#dns y hacer clic en "Clear host cache" |
| Firefox | Visitar about:config > buscar network.dnsCacheExpiration > cambiar a 0 y volver a 60 |
# Script multiplataforma para vaciar la caché DNS (detecta el SO automáticamente):
#!/bin/bash
case "$(uname -s)" in
Linux*)
if command -v resolvectl &>/dev/null; then
sudo resolvectl flush-caches
echo "Caché DNS vaciada (systemd-resolved)"
elif command -v nscd &>/dev/null; then
sudo nscd -i hosts
echo "Caché DNS vaciada (nscd)"
fi
;;
Darwin*)
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
echo "Caché DNS vaciada (macOS)"
;;
*)
echo "Sistema no reconocido. En Windows: ejecuta 'ipconfig /flushdns' como administrador"
;;
esacEl orden de resolución de nombres en el sistema operativo
El archivo hosts tiene prioridad sobre el DNS, pero no es el único mecanismo de resolución de nombres. El orden exacto en que el sistema operativo intenta resolver un nombre depende de la configuración del archivo nsswitch.conf en Linux y macOS (o la configuración del registro en Windows):
# En Linux, el orden de resolución se configura en /etc/nsswitch.conf:
cat /etc/nsswitch.conf | grep hosts
# Resultado típico:
# hosts: files mdns4_minimal [NOTFOUND=return] dns
# Significado:
# files: primero consulta el archivo /etc/hosts (y /etc/hostname)
# mdns4_minimal: luego mDNS para dominios .local (Bonjour/Avahi)
# [NOTFOUND=return]: si mDNS no encuentra el dominio, no continúa con dns para .local
# dns: finalmente consulta el servidor DNS configurado en /etc/resolv.conf
# Para cambiar el orden (no recomendado sin necesidad):
sudo nano /etc/nsswitch.conf
# Cambia el orden de "files dns" a "dns files" para que el DNS tenga prioridad sobre hosts
# (esto hace que el archivo hosts sea prácticamente ignorado)Seguridad: riesgos y precauciones con el archivo hosts
El malware modifica el archivo hosts
El malware de tipo "hijacking" modifica el archivo hosts para redirigir sitios legítimos (especialmente bancos, redes sociales y servicios de correo) a servidores fraudulentos. Si notas que al acceder a tu banco o a Gmail el navegador muestra el sitio correcto pero las credenciales no funcionan o hay comportamientos extraños, verifica el archivo hosts en busca de entradas no autorizadas.
# Verificar si el archivo hosts contiene entradas sospechosas:
# Buscar entradas que no sean las por defecto:
grep -v "^#\|^$\|localhost\|127.0.0\|::1\|fe00\|ff0" /etc/hosts
# En Windows, verificar el archivo hosts desde PowerShell:
Get-Content C:\Windows\System32\drivers\etc\hosts | Where-Object {
$_ -notmatch "^#" -and $_ -notmatch "^\s*$" -and $_ -notmatch "localhost"
}
# Verificar los permisos del archivo hosts (solo root/administrador debe poder escribir):
# Linux/macOS:
ls -la /etc/hosts
# Debe mostrar: -rw-r--r-- 1 root wheel (macOS) o root root (Linux)
# Restaurar el archivo hosts a su estado por defecto en Linux/Ubuntu:
sudo bash -c 'cat > /etc/hosts << EOF
127.0.0.1 localhost
127.0.1.1 $(hostname)
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
EOF'El archivo hosts no funciona para todas las aplicaciones
En algunos casos, la modificación del archivo hosts no afecta a todas las aplicaciones del sistema:
- Chrome y Firefox con DoH activo: si el navegador usa DNS over HTTPS, resuelve los dominios a través del servidor DoH configurado, ignorando el archivo hosts del sistema. Para que el archivo hosts funcione, desactiva DoH en el navegador.
- Algunas apps de Android e iOS: las aplicaciones móviles pueden usar su propio resolver DNS interno, ignorando el archivo hosts del sistema (en dispositivos sin root/jailbreak).
- Contenedores Docker: los contenedores tienen su propio sistema de resolución DNS. Para que un contenedor use entradas del archivo hosts del host, necesitas configurarlo explícitamente en el docker-compose.yml o en el docker run con la opción
--add-host.
# Añadir entradas de hosts a un contenedor Docker:
docker run --add-host="tudominio.com:195.234.56.79" nginx
# En docker-compose.yml:
services:
mi-servicio:
image: nginx
extra_hosts:
- "tudominio.com:195.234.56.79"
- "www.tudominio.com:195.234.56.79"Herramienta SwitchHosts: gestión avanzada del archivo hosts
Para quienes trabajan frecuentemente con múltiples entornos (desarrollo, staging, producción) que requieren diferentes configuraciones del archivo hosts, SwitchHosts es una herramienta gratuita y de código abierto disponible para Windows, macOS y Linux que simplifica enormemente la gestión:
- Permite crear múltiples perfiles de hosts (uno para desarrollo, otro para staging, otro para pruebas de migración).
- Activar y desactivar perfiles con un solo clic, sin editar el archivo manualmente.
- Vacía la caché DNS automáticamente al cambiar de perfil.
- Permite comentar y documentar cada entrada.
- Puede cargar listas de hosts remotas (como las de bloqueo de publicidad) y actualizarlas automáticamente.
Preguntas frecuentes sobre el archivo hosts
¿Los cambios en el archivo hosts son inmediatos?
Casi inmediatos, pero no instantáneos. El sistema operativo lee el archivo hosts en cada nueva solicitud de resolución de nombres, pero los navegadores y otras aplicaciones tienen su propia caché DNS que puede mantener el valor anterior durante minutos. Por eso es imprescindible vaciar la caché DNS del sistema operativo (ipconfig /flushdns en Windows, sudo killall -HUP mDNSResponder en macOS, sudo resolvectl flush-caches en Linux) y también la caché DNS del propio navegador (chrome://net-internals/#dns en Chrome) después de modificar el archivo hosts. Una vez vaciadas ambas cachés, el cambio es efectivo en la siguiente resolución.
¿El archivo hosts afecta a todos los usuarios del equipo o solo al mío?
El archivo hosts es un archivo del sistema operativo, no del usuario. Sus entradas afectan a todos los usuarios del equipo y a todas las aplicaciones que usen el resolutor de nombres del sistema operativo. No hay una forma estándar de tener un archivo hosts diferente para cada usuario en el mismo equipo. Si necesitas que los cambios afecten solo a ti y no a otros usuarios, las alternativas son: usar una extensión del navegador que sobrescriba la resolución DNS a nivel del navegador (como Redirector en Chrome), usar una VPN o proxy configurado solo en tu perfil de usuario, o usar un servidor DNS local (como dnsmasq o Pi-hole) que aplique las reglas solo a las solicitudes de tu equipo.
¿Por qué el archivo hosts no funciona con algunos sitios HTTPS?
Si apuntas un dominio HTTPS a una IP diferente mediante el archivo hosts, el navegador puede rechazar la conexión con un error de certificado SSL. Esto ocurre cuando el certificado SSL instalado en el servidor de destino no cubre el dominio que intentas acceder. Por ejemplo, si apuntas tudominio.com a la IP de un servidor que tiene certificado para otro-dominio.com, el navegador detecta la discrepancia y muestra el error NET::ERR_CERT_COMMON_NAME_INVALID. La solución es que el servidor de destino tenga un certificado SSL válido para el dominio que estás probando, lo que es perfectamente posible con Let's Encrypt.
¿Puedo usar el archivo hosts para bloquear publicidad en toda la red doméstica?
El archivo hosts solo afecta al equipo donde está configurado, no a toda la red. Para bloquear publicidad en toda la red doméstica, la solución correcta es Pi-hole: un servidor DNS que actúa como filtro para toda la red, bloqueando dominios de publicidad antes de que lleguen a cualquier dispositivo, incluyendo móviles, Smart TVs y consolas de videojuegos. Pi-hole se instala en una Raspberry Pi u otro mini-ordenador y se configura como servidor DNS primario en el router, de modo que todos los dispositivos de la red usan automáticamente su lista de bloqueo.
¿Hay un límite en el número de entradas que puede tener el archivo hosts?
No hay un límite oficial documentado, pero en la práctica el rendimiento del sistema puede verse afectado con archivos hosts muy grandes. En Windows, se han documentado ralentizaciones con archivos de más de 100.000 líneas. En Linux y macOS el impacto es menor gracias a implementaciones más eficientes. Las listas de bloqueo de publicidad como la de StevenBlack contienen entre 50.000 y 200.000 entradas según la variante elegida, y funcionan correctamente en la mayoría de sistemas modernos. Si experimentas lentitud en la resolución de nombres con un archivo hosts muy grande, considera usar Pi-hole o un bloqueador de DNS en su lugar.
¿Cómo sé que el archivo hosts está siendo leído correctamente?
La forma más directa de verificarlo es hacer ping al dominio que añadiste al archivo hosts y comprobar que la IP que aparece es la que configuraste, no la real del dominio:
ping tudominio.com -c 1
# Debe mostrar la IP que pusiste en el hosts, no la IP real del DNS
# También puedes verificarlo con dig en Linux/macOS:
getent hosts tudominio.com
# Muestra cómo el sistema resuelve el nombre, incluyendo el archivo hosts
# En Windows:
nslookup tudominio.com
# NOTA: nslookup en Windows usa el DNS directamente y puede ignorar el hosts.
# Usar ping o el navegador para verificar que el hosts está activo.