El archivo /etc/hosts
comenzó en los viejos tiempos de DARPA como el archivo de resolución para todos los hosts conectados a Internet (antes de que existiera DNS). Tiene la máxima prioridad, lo que significa que este archivo es preferido antes que cualquier otro sistema de nombres. 1
Sin embargo, como archivo único, no se escala bien: el tamaño del archivo se vuelve demasiado grande muy pronto. Es por eso que se desarrolló el sistema DNS, un sistema jerárquico de nombres distribuidos. Permite que cualquier host encuentre la dirección numérica de algún otro host de manera eficiente.
El concepto muy antiguo del /etc/hosts
archivo es muy simple, solo una dirección y un nombre de host:
127.0.0.1 localhost
para cada línea Esa es una lista simple de pares de dirección-host. 2
Su uso principal actual es evitar la resolución de DNS. Se /etc/hosts
utilizará una coincidencia encontrada en el archivo antes de cualquier entrada DNS. De hecho, si el nombre buscado (como localhost
) se encuentra en el archivo, no se realizará ninguna resolución de DNS.
1 Bueno, el orden de resolución de nombres se define en realidad /etc/nsswitch.conf
, que generalmente tiene esta entrada:
hosts: files dns
lo que significa "probar archivos ( /etc/hosts
); y si falla, intente DNS".
Pero ese orden podría ser cambiado o ampliado.
2 (en la actualidad) El archivo de hosts contiene líneas de texto que consisten en una dirección IP en el primer campo de texto seguido de uno o más nombres de host. Cada campo está separado por espacios en blanco: las pestañas a menudo se prefieren por razones históricas, pero también se usan espacios. Se pueden incluir líneas de comentarios; están indicados por un octothorpe (#) en la primera posición de tales líneas. Las líneas completamente en blanco en el archivo se ignoran. Por ejemplo, un archivo de hosts típico puede contener lo siguiente:
127.0.0.1 localhost loopback
::1 localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27 mycomputer.lan
Este ejemplo contiene entradas para las direcciones de bucle invertido del sistema y sus nombres de host, la primera línea es un contenido predeterminado típico del archivo de hosts. La segunda línea tiene varios nombres adicionales (probablemente solo válidos en sistemas locales). El ejemplo ilustra que una dirección IP puede tener múltiples nombres de host (localhost y loopback), y que un nombre de host se puede asignar a las direcciones IP IPv4 e IPv6, como se muestra en la primera y segunda línea respectivamente. Un nombre ( mycomputer.lan
) puede resolverse en varias direcciones ( 192.168.0.8 10.0.0.27
). Sin embargo, en ese caso, cuál se usa depende de las rutas (y sus prioridades) establecidas para la computadora.
Algunos sistemas operativos más antiguos no tenían forma de informar una lista de direcciones para un nombre de pila.