El archivo hosts

El formato del contenido del archivo hosts es el siguiente

127.0.0.1 localhost
185.129.251.220 www.trucoswindows.net

Ubicación del archivo hosts

El archivo hostsEn sistemas Windows 95/98/Me:

C:\Windows

En sistemas Windows NT/2000/2003

C:\Winnt\System32\drivers\etc

En sistemas Windows XP/Vista/7/8/10

C:\Windows\System32\drivers\etc

La dirección IP:

Son los números que identifican de forma inequívoca a una determinada computadora en una red. Para las computadoras, este es un sistema mucho más sencillo y eficiente de denotarlas. Otro uso de las direcciones IP, o más bien una extensión de su uso, es identificar sitios web, es a esta orientación a la que dirigiremos nuestro desarrollo.

Las direcciones IP están formadas por cuatro bloques de números que van desde el 0 hasta el 255, lo cual significa que el primer número o dirección IP es el 0.0.0.0 y el último es el 255.255.255.255. Al menos es así en líneas generales. Aunque hay mucho más que decir sobre estos números, no viene al caso en este breve artículo.

El nombre de dominio:

Al igual que para las computadoras es mucho más sencillo manejar números como identificadores, para los seres humanos, es más fácil manejar palabras, por lo tanto, nosotros nos referimos a las computadoras que forman una red mediante nombres. Estos nombres, son, por ejemplo, cosas como: trucoswindows.net, google.com, internic.net, etc.

Recurso de red:

Es todo aquello que puede ser requerido o direccionado mediante una dirección IP, por ejemplo, una impresora, un scanner, una computadora, un sitio web, etc.

¿Qué es el archivo hosts?

Es un archivo de texto que contiene direcciones IP y nombres de sitios web relacionados en pares unívocos.

¿Cuál es el fin principal del archivo hosts?

Cuando una máquina se conecta a una red y desde una aplicación hacemos una petición para ver un recurso de red, lo hacemos con el léxico que no es común, es decir, mediante palabras; usamos Nombres de Dominio.

Para la máquina, estos Nombres de Dominio ( DNS ), no tienen mayor sentido, por lo tanto, han de traducirse a algo que puedan entender antes de proveernos con un resultado o respuesta, para hacer esto, recurren a máquinas con listas que relacionan los Nombres de Dominio ( DNS ) con sus respectivas direcciones IP.

Esta solicitud, suele ser realizada a unas máquinas específicas que se encuentran en diversas partes del mundo; a su vez, estas máquinas han de responder las solicitudes de cientos o miles de máquinas, lo cual puede resultar un poco complicado. Sin embargo, el sistema cuenta con una herramienta interna y sencilla para evitar estas peticiones, al menos algunas de ellas. Como podrán imaginar, esta herramienta es el archivo hosts.

Hay otras herramientas más poderosas y completas, pero eso queda fuera del alcance de este articulo.

Así que el fin principal de este archivo, es descargar de trabajo a los Servidores de Nombres de Dominio y acelerar la obtención de resultados en las máquinas locales al solicitar recursos de red.

Mecánica de resolución de Nombres de Dominio:
En líneas generales, el sistema sigue este orden para obtener la dirección IP que le corresponde a un Nombre de Dominio:
El propio sistema (localhost)
El archivo hosts
Un Servidor de Nombres de Dominio

¿Cómo ayuda a acelerar la navegación el archivo hosts?

Hemos visto que el sistema trata de conseguir la dirección correcta primero en el archivo hots que en un Servidor de Nombres, por lo tanto, si tenemos la dirección de un sitio que queramos visitar en nuestro archivo hosts, accederemos a este antes que si hemos de consultar su dirección en otra máquina de la red y más aun si la máquina con la respuesta es externa a nuestra red.

Dependiendo del sistema, este paso es más notorio.

Hay que mencionar que si agregamos a esta lista de direcciones las correspondientes a sitios que frecuentemos o que tengan una sola dirección IP, ganaremos un poco de velocidad, pero si lo hacemos con grandes sitios distribuidos por el globo, perderemos eficiencia y calidad de servicio. Por ejemplo, si asignamos a un buscador una dirección determinada, puede ocurrir que si un día dicha máquina está averiada, en mantenimiento o desactualizada, no podamos acceder en modo alguno al buscador ya que nuestro sistema estará encadenado a esa dirección.

Personalmente, desaconsejo el uso de este archivo para tratar de acelerar la localización de paginas que frecuentemos ya que cualquier día pueden cambiar de ip y en un primer momento, cuando no podamos llegar a ellas, no sabremos que ha pasado. Dependiendo de cada uno, recordar que tenemos la página en cuestión asignada en el archivo hosts, puede llevarnos unos minutos o varios días.

¿Cómo ayuda a aumentar la seguridad el archivo hosts?

Como hemos visto ya, existe una dirección que es común a todas las máquinas, esta dirección es 127.0.0.1 o localhost.

Si a cualquier Nombre de Dominio le asignamos esta dirección en nuestro archivo hosts, los navegadores y demás aplicaciones que hagan uso de este archivo, no podrán acceder correctamente al recurso ya que habremos modificado su dirección.

Recordemos que para la computadora los nombres que nosotros escribimos y recordamos no significan nada y más aun, carecen del valor intrínseco que les otorgamos, para nuestro sistema google.com puede hallarse en la IP 64.233.183.147 o en 127.0.0.1.

Pero claro, no nos interesa que google.com esté en nuestra máquina, ya que obviamente no lo está y si desde un navegador tratamos de acceder al buscador, no podremos realizar ninguna. Sin embargo, siguiendo con el mismo razonamiento, podemos asignar la dirección local a todos aquellos sitios que consideramos inadecuados por una u otra razón.

Por ejemplo, si no queremos que nuestro sistema pueda acceder a trucoswindows.net, bastará con que agreguemos al archivo hosts la siguiente línea:
127.0.0.1 trucoswindows.net

Con ello estaremos indicando que trucoswindows.net se encuentra en nuestra PC, cosa que es falsa y jamás podremos acceder a la web.

¿Cuál es el contenido mínimo que debe tener el archivo hosts?

Bueno, esto es relativo, pero en principio, debe ser algo así:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Éste es un ejemplo de archivo HOSTS usado por Microsoft TCP/IP para Windows.
#
# Este archivo contiene las asignaciones de las direcciones IP a los nombres de
# host. Cada entrada debe permanecer en una línea individual. La dirección IP
# debe ponerse en la primera columna, seguida del nombre de host correspondiente.
# La dirección IP y el nombre de host deben separarse con al menos un espacio.
#
#
# También pueden insertarse comentarios (como éste) en líneas individuales
# o a continuación del nombre de equipo indicándolos con el símbolo "#"
#
# Por ejemplo:
#
# 102.54.94.97 rhino.acme.com # servidor origen
# 38.25.63.10 x.acme.com # host cliente x

127.0.0.1 localhost

Cuando añadimos el carácter # delante de una línea estaremos eliminando dicha línea, de hay que de lo anteriormente expuesto solamente exista para el sistema que 127.0.0.1 localhost
Como veis todo lo demás son explicaciones y ejemplos.

¿Cuál es la longitud máxima de este archivo?

Esta pregunta es más interesante, personalmente, tengo un archivo hosts con unas 100 líneas y no conozco un límite real, aunque deberá de existir.

La única desventaja, es que en ciertas configuraciones del Windows, específicamente en sistemas basados en el núcleo NT, la carga del sistema se puede demorar mientras el archico hosts es leído. No hay una buena razón para que el sistema haga esto, sin embargo, ocurre. Pero aun cuando esto ocurra, la desventaja de tener que esperar un poco más por el inicio contra el beneficio de la seguridad agregada, bien vale la pena.

Nota final:

El archivo se llama hosts y no tiene extensión, por lo que para abrirlo deberás de escoger Abrirlo con… escoge el bloc de notas

Es una buena práctica cambiar las propiedades del archivo y marcarlo para que sea de solo lectura, esto le dificulta el trabajo a virus y troyanos que puedan intentar modificarlo.