El archivo hosts es un archivo del sistema operativo que asigna nombres de host a direcciones IP . Es un archivo de texto simple . Originalmente, un archivo llamado HOSTS.TXT era mantenido manualmente y puesto a disposición a través del intercambio de archivos por el Stanford Research Institute para los miembros de ARPANET , que contenía los nombres de host y las direcciones de los hosts tal como fueron aportados para su inclusión por las organizaciones miembro. El Sistema de nombres de dominio , descrito por primera vez en 1983 e implementado en 1984, [1] automatizó el proceso de publicación y proporcionó una resolución de nombres de host instantánea y dinámica en la red de rápido crecimiento. En los sistemas operativos modernos, el archivo hosts sigue siendo un mecanismo alternativo de resolución de nombres , configurable a menudo como parte de funciones como el Name Service Switch como método principal o como método de respaldo.
El archivo de hosts es una de las diversas funciones del sistema que ayudan a direccionar los nodos de red en una red informática. Es una parte común de la implementación del Protocolo de Internet (IP) de un sistema operativo y cumple la función de traducir nombres de host descriptivos en direcciones de protocolo numéricas, llamadas direcciones IP , que identifican y ubican un host en una red IP.
En algunos sistemas operativos, el contenido del archivo hosts se utiliza preferentemente frente a otros métodos de resolución de nombres, como el Sistema de nombres de dominio (DNS), pero muchos sistemas implementan conmutadores de servicios de nombres , por ejemplo, nsswitch.conf para Linux y Unix , para proporcionar personalización. A diferencia de los solucionadores DNS remotos, el archivo hosts está bajo el control directo del administrador de la computadora local. [2]
El archivo hosts contiene líneas de texto que consisten en una dirección IP en el primer campo de texto seguida de uno o más nombres de host. [3] Los nombres de host se asignan a las IP, no al revés. Cada campo está separado por un espacio en blanco; las tabulaciones suelen preferirse por razones históricas, pero también se utilizan espacios. Se pueden incluir líneas de comentarios; se indican con un signo de coma (#) en la primera posición de dichas líneas. Las líneas completamente en blanco en el archivo se ignoran. [4] Por ejemplo, un archivo hosts típico puede contener lo siguiente:
Bucle de retorno del host local 127.0.0.1::1 servidor local
Este ejemplo solo contiene entradas para las direcciones de loopback del sistema y sus nombres de host, un contenido predeterminado típico del archivo hosts. El ejemplo ilustra que una dirección IP puede tener varios nombres de host ( localhost y loopback ) y que un nombre de host puede asignarse a direcciones IP tanto IPv4 como IPv6 , como se muestra en la primera y segunda línea respectivamente.
La ubicación del archivo hosts en la jerarquía del sistema de archivos varía según el sistema operativo. Normalmente se llama hosts , sin extensión.
ARPANET , el predecesor de Internet , no tenía una base de datos distribuida de nombres de host. Cada nodo de la red mantenía su propio mapa de nodos de la red según fuera necesario y les asignaba nombres que fueran fáciles de recordar para los usuarios del sistema. No había ningún método para garantizar que todas las referencias a un nodo determinado en una red utilizaran el mismo nombre, ni tampoco había una manera de leer el archivo de hosts de otra computadora para obtener automáticamente una copia.
El pequeño tamaño de ARPANET permitió que la carga administrativa fuera mínima para mantener un archivo de hosts preciso. Los nodos de red normalmente tenían una dirección y podían tener muchos nombres. Sin embargo, a medida que las redes de computadoras TCP/IP de área local ganaron popularidad, el mantenimiento de los archivos de hosts se convirtió en una carga mayor para los administradores de sistemas, ya que se añadían redes y nodos de red al sistema con una frecuencia cada vez mayor.
Los esfuerzos de estandarización, como la especificación del formato del archivo HOSTS.TXT en RFC 952, y los protocolos de distribución, por ejemplo, el servidor de nombres de host descrito en RFC 953, ayudaron con estos problemas, pero la naturaleza centralizada y monolítica de los archivos de hosts eventualmente requirió la creación del Sistema de nombres de dominio (DNS) distribuido.
En algunos sistemas antiguos existe un archivo llamado redes que es similar a un archivo de hosts y que contiene nombres de redes. [13]
En su función de resolver nombres de host, el archivo hosts se puede utilizar para definir cualquier nombre de host o nombre de dominio para su uso en el sistema local.
El archivo hosts puede representar un vector de ataque para software malicioso. El archivo puede ser modificado, por ejemplo, por adware , virus informáticos o troyanos para redirigir el tráfico desde el destino previsto a sitios que albergan contenido malicioso o no deseado. [19] El gusano informático Mydoom.B, muy extendido, impidió que los usuarios visitaran sitios sobre seguridad informática y software antivirus y también afectó el acceso desde el equipo afectado al sitio web Microsoft Windows Update .
En algunos casos, el malware ha modificado la biblioteca encargada de cargar el archivo hosts para redirigirlo a un archivo que puede controlar libremente. [20]