El archivo Hosts en Linux
El archivo hosts es un componente crítico en muchos sistemas operativos, incluyendo Linux VPS Hosting. Sirve como una herramienta a nivel de sistema local para la asignación de nombres de host a direcciones IP, ayudando a su equipo a localizar y conectarse a diferentes servidores o dispositivos en Internet o una red local. La comprensión de cómo funciona el archivo hosts y cómo modificarlo puede ser útil para la solución de problemas, el bloqueo de sitios específicos, o la creación de nombres de dominio personalizados para fines de desarrollo. En este artículo, exploraremos qué es el archivo hosts, dónde se encuentra en Linux y cómo editarlo de forma efectiva.
1. ¿Qué es el Archivo Hosts?
El archivo hosts es un archivo de texto plano utilizado por el sistema operativo para asignar nombres de host legibles por humanos (como www.example.com) a sus correspondientes direcciones IP. Funciona de forma similar al Sistema de Nombres de Dominio (DNS), pero opera localmente en tu máquina. El archivo se utiliza antes de consultar servidores DNS externos, lo que le permite anular la resolución DNS con sus propias asignaciones personalizadas.
Los principales usos del archivo hosts incluyen:
- Mapeo de Dominios para Desarrollo Local: Los desarrolladores suelen utilizar el archivo hosts para crear entornos de prueba locales mediante la asignación de nombres de dominio personalizados a localhost (127.0.0.1).
- Bloqueo del acceso a sitios web específicos: puede bloquear el acceso a determinados sitios web asignando sus nombres de dominio a una IP no enrutable, como 0.0.0.0 o 127.0.0.1.
- Solución rápida de problemas de DNS: El archivo hosts puede utilizarse para solucionar problemas de DNS o probar configuraciones de sitios web sin modificar los registros DNS reales.
2. Ubicación del archivo hosts en Linux
En los sistemas Linux, el archivo hosts se encuentra normalmente en el directorio /etc y se llama hosts. La ruta completa al archivo es:
/etc/hosts
Este fichero suele estar preconfigurado con algunas entradas por defecto para la gestión de la red local. Por ejemplo, la entrada para localhost suele incluirse por defecto:
127.0.0.1 localhost ::1 localhost
3. Estructura del fichero Hosts
La estructura del fichero hosts es sencilla. Cada línea del fichero contiene una dirección IP seguida de uno o más nombres de host que corresponden a esa dirección. El formato es el siguiente:
- Dirección_IP: La dirección IP a la que desea que se resuelva el nombre de host.
- hostname: El nombre de dominio o host.
- alias (opcional): Nombres alternativos para el host, que pueden añadirse por comodidad.
Por ejemplo, si desea asignar el dominio example.com a un servidor local (localhost), añada la siguiente línea:
También puede añadir varios nombres de host en una sola línea, como se indica a continuación:
4. Edición del archivo Hosts en Linux
Para modificar el archivo hosts en un sistema Linux, necesitas privilegios de administrador (root), ya que el archivo forma parte de la configuración del sistema. Aquí tienes una guía paso a paso para editar el archivo hosts:
Paso 1: Abrir el archivo hosts como root
Dado que necesita permisos de root para editar el archivo hosts, debe abrirlo utilizando un editor de texto con sudo. Los editores de texto más comunes son nano y vim. A continuación se explica cómo abrir el archivo con nano:
sudo nano /etc/hosts
Paso 2: Editar el archivo Hosts
Una vez abierto el archivo, puede añadir, modificar o eliminar entradas según sea necesario. Por ejemplo, para bloquear el acceso a un sitio web como example.com, puede añadir la siguiente línea:
Esto bloquea efectivamente el sitio web apuntando el dominio a una dirección IP no enrutable.
Paso 3: Guardar y salir
Una vez realizados los cambios, guarde el archivo. Si está utilizando nano, pulse CTRL O para escribir los cambios y, a continuación, pulse Intro. Para salir, pulsa CTRL X.
Si usas vim, puedes guardar y salir escribiendo:
Paso 4: Verifique los cambios
Para comprobar que los cambios han surtido efecto, puede utilizar el comando ping o simplemente intentar acceder al dominio en su navegador. Por ejemplo
Si has bloqueado el dominio asignándolo a 0.0.0.0 o 127.0.0.1, deberías ver un mensaje indicando que el host es inalcanzable.
5. Casos comunes de uso del archivo Hosts
5.1. Desarrollo local
Cuando trabaje en proyectos de desarrollo web, puede utilizar el archivo hosts para asignar dominios personalizados a localhost. Esto le permite utilizar una URL más legible como miproyecto.local en lugar de localhost:3000.
Ejemplo:
127.0.0.1 miproyecto.local
Después de añadir esta entrada, puede navegar a myproject.local en su navegador web, y apuntará a su servidor de desarrollo local.
5.2. Bloqueo de sitios web
Puede utilizar el archivo hosts para bloquear el acceso a sitios web específicos asignando sus dominios a 0.0.0.0 o 127.0.0.1. Esto es útil para evitar el acceso a sitios web de distracción o potencialmente peligrosos. Esto es útil para impedir el acceso a sitios web que distraen la atención o a dominios potencialmente dañinos.
Ejemplo:
Esto bloqueará el acceso a Facebook redirigiendo las peticiones a una dirección local inexistente.
5.3. Cómo evitar los problemas de DNS
Si tienes problemas de resolución de DNS o quieres probar un sitio web en un nuevo servidor antes de actualizar los registros DNS, puedes utilizar el archivo hosts para asignar temporalmente un dominio a una dirección IP específica.
Ejemplo:
Esto obligará a su sistema a resolver mywebsite.com a la dirección IP 203.0.113.15, independientemente de lo que digan los registros DNS.
6. Vaciar la caché DNS (opcional)
Tras realizar cambios en el archivo hosts, es posible que su sistema operativo aún guarde en caché las resoluciones DNS anteriores. Para aplicar los cambios inmediatamente, puede que necesite vaciar la caché DNS. El siguiente comando puede ser utilizado en sistemas Linux que soporten systemd:
sudo systemctl restart systemd-resolved
Alternativamente, puede utilizar:
sudo service network-manager restart
Esto asegura que las nuevas asignaciones en el archivo de hosts se utilizan de inmediato.
Conclusión
El archivo hosts es una poderosa herramienta para controlar cómo su sistema resuelve los nombres de dominio. Ya sea que esté bloqueando sitios web no deseados, configurando entornos de desarrollo locales o solucionando problemas de DNS, saber cómo modificar el archivo hosts puede ahorrarle tiempo y mejorar sus capacidades de administración de red. En Linux, editar el archivo hosts es sencillo y puede hacerse en unos pocos pasos utilizando comandos básicos de terminal. Sólo recuerda usar privilegios de root cuando modifiques este importante archivo del sistema