Localhost: ¿para qué se utiliza la IP 127.0.0.1?
En la mayoría de los casos en los que se accede a una dirección IP con el ordenador se tiene la intención de contactar con otro ordenador a través de Internet. No obstante, si se introduce la dirección IP 127.0.0.1, la comunicación se establece con el localhost, es decir, con el propio equipo. ¿Con qué finalidad? ¿Cuándo resulta útil recurrir al localhost y cómo funciona esta autorreferencia?
- Certificado SSL Wildcard
- Registro privado
- 1 cuenta de correo electrónico por contrato
Qué es un localhost
Para definir el término «localhost» se comienza explicando que se refiere al propio ordenador que se tiene enfrente. Traducido literalmente al castellano, localhost es “huésped local”, pero en la práctica se utiliza para referirse al dispositivo o al servidor local. Así, cuando se llama al host local, el equipo habla, por así decirlo, consigo mismo o con un servidor instalado en él. No obstante, esta definición se queda corta, pues con localhost no se hace referencia de forma directa al propio PC, sino a su dirección IP. Cada ordenador suele tener una dirección IP que le identifica dentro de la red y otra con la cual el usuario navega en Internet, casi siempre dinámica y por normal general asignada por el proveedor de Internet. La dirección asociada al localhost, también llamada dirección IP de loopback, es especial e invariable y, si se utiliza un servidor en el propio equipo, sirve para acceder a él sin necesidad de salir a Internet.
Esto significa que el término encuentra aplicación en el contexto de las redes. En este marco, el localhost no denomina solamente al servidor virtual, sino también a su nombre de dominio. Como .test, .example, o .invalid; .localhost es un dominio de nivel superior, reservado para propósitos de documentación y comprobación. Si se accede al dominio, se activa un bucle reverso o loopback, de modo que si se introduce en el navegador la dirección localhost, la petición no se envía a Internet a través del router, sino que permanece en el sistema. El localhost tiene la dirección IP 127.0.0.1, la cual hace referencia al servidor en el propio equipo.
127.0.0.1: ¿cómo funciona el loopback?
En una red las direcciones IP se usan para que los participantes puedan comunicarse entre ellos. Gracias a este sistema, los paquetes de datos que se envían por TCP/IP alcanzan su destino sin problemas. Esta pareja de protocolos, Transmission Control Protocol (TCP) e Internet Protocol (IP), constituyen uno de los pilares fundamentales de Internet, pero también se utilizan en redes locales. El protocolo de Internet se encargaría en ellas de permitir dirigirse a los participantes en la red con ayuda de una máscara de subred.
La asignación de direcciones IP públicas, estas son, a las que se accede en Internet, está regida por una organización internacional, la conocida como Internet Corporation for Assigned Names and Numbers (ICANN). La ICANN se ocupa también del Domain Name System (DNS), es decir, de la adjudicación de nombres de dominio, si bien ciertos rangos están reservados para fines especiales como el que nos ocupa, por ejemplo, el bloque de direcciones de 127.0.0.0 hasta 127.255.255.255. Muchos discuten por qué especialmente este intervalo y no otro y, aunque no hay información concluyente, es posible acercarse a una respuesta.
Hasta los años 90 del siglo XX, las direcciones IP de Internet se dividían en diferentes clases. La primera clase (clase A) empezaba por 0.0.0.0, dirección que permanece reservada, y terminaba en 127.255.255.255. 127 era, por tanto, el último bloque dentro de la red de clase A. Este puesto prominente podría ser el motivo por el que se seleccionó.
Dentro de este rango se puede construir una red local o localnet. Pero lo que le hace especial no es solo que haya sido reservado por la ICANN, sino que las direcciones IP no se asignan de forma única, como suele ser lo habitual. ¿Cómo es posible?
En IPv6 se reserva la dirección ::1 como dirección IP para el loopback.
En cuanto se introduce en el navegador una dirección IP o el nombre de dominio correspondiente, el router envía la solicitud en Internet al servidor correspondiente. Así, por ejemplo, si se introduce 172.217.0.0, se obtiene acceso a la página del buscador de Google. No obstante, no ocurre lo mismo si se escribe la dirección 127.0.0.1, ya que las peticiones a esta dirección no se dirigen a Internet. TCP/IP deduce por el primer bloque (127) que el usuario no desea enviar a Internet sino que refiere a uno mismo. Esto desencadena el llamado loopback.
A la inversa, el protocolo tampoco acepta peticiones externas enviadas a 127.0.0.1, ya que si lo hicieran los atacantes podrían intentar entrar en el sistema. Los paquetes que aparecen en el Internet público desde direcciones IP reservadas como 127.0.0.1 se conocen como martian packets o paquetes marcianos.
Para que la referencia inversa al propio ordenador funcione, se crea el dispositivo de loopback, una interfaz virtual que se realiza íntegramente a través del sistema operativo. En sistemas Unix la interfaz recibe la denominación de lo, aunque en ocasiones también lo0 y se visualiza con el comando ifconfig. En Windows este mismo comando se denomina ipconfig.
Desde el punto de vista exclusivamente técnico, también es posible crear un loopback de forma analógica. Con los circuitos de la tecnología de la comunicación se puede determinar si son correctas la trayectoria y la recepción de la señal.
¿Para qué se usa un localhost?
Los desarrolladores utilizan la función localhost para probar programas y aplicaciones web. Asimismo, los administradores de red pueden usar también este bucle de loopback para comprobar las conexiones de red. Otro uso muy práctico lo encuentra en los archivos host, donde se pueden bloquear páginas web maliciosas.
Localhost para realizar pruebas
El localhost se utiliza principalmente en el ámbito de los servidores web y en la programación de aplicaciones que tienen que comunicarse a través de Internet. Durante el proceso de desarrollo de una aplicación es muy importante comprobar si esta funciona tal como se había planteado una vez se accede a Internet. Pero hay funciones que solo se pueden ejecutar cuando sus archivos se encuentran en el servidor local. Existe una gran diferencia si, por ejemplo, se abre un documento HTML directamente en el ordenador o si se carga en un servidor antes de acceder a él. Lo que carece de sentido es publicar un producto sin terminar. Por este motivo, los desarrolladores usan un loopback que les permite simular una conexión evitando la Red: la conexión permanece completamente en el sistema.
Otra de las ventajas que supone usar un localhost con fines de prueba reside en la velocidad. Por norma general, cuando se envía una solicitud a través de Internet esta requiere unos 100 milisegundos. Cuando se envía un ping al localhost, la transmisión se realiza en un máximo de un milisegundo. Con esta tecnología se puede determinar también si el protocolo de Internet se ha implementado correctamente. Para poder comprobarlo, basta con abrir la línea de comandos de Windows o el terminal Unix/Mac y usar el comando Ping. Este se puede enviar al localhost del dominio o directamente a la dirección IP:
ping localhost
ping 127.0.0.1
Cuando se quiere configurar un servidor de prueba en el PC con el fin de tratarlo como host local, primero hay que instalar el software correspondiente. Aunque por normal general está permitido ejecutar cualquier servidor estándar en el propio PC, también existen determinados software especiales que han sido creados concretamente para su uso en el localhost, tal es el caso de XAMPP. En la Digital Guide de IONOS se aclara cómo se instala y configura XAMPP paso a paso.
Evita aparecer en la barra del navegador como "página no segura" y consigue la confianza de tus clientes con una página web con encriptación SSL.
Localhost para bloquear páginas web
La función de localhost también puede ser de gran utilidad en el archivo hosts, considerado el predecesor del Domain Name System (DNS), ya que ordena las direcciones IP en función de sus nombres de dominio. Cuando se escribe un dominio en el navegador, este se traduce en una dirección IP. En el pasado era el archivo hosts, todavía disponible en la mayoría de los sistemas operativos, el que se encargaba de este proceso. En Windows se puede encontrar en \system32\drivers\etc\hosts, y en macOS y en sistemas Unix en /etc/hosts.
Si no has realizado ningún cambio en el archivo probablemente estará formado por dos entradas:
127.0.0.1 localhost
::1 localhost
De esta forma se garantiza que la resolución de nombres de dominio en un localhost no se va a producir a través de Internet. Pero este archivo también puede utilizarse para bloquear determinadas páginas web. Para ello basta con introducir la página que se quiere bloquear en la lista y asignar al dominio la dirección IP 127.0.0.1. Si se intenta (ya sea el mismo usuario o un script dañino) acceder al dominio bloqueado, el navegador primero revisará el archivo, donde encontrará los datos que impiden el acceso. Otra opción reside en usar la dirección IP 0.0.0.0.
A continuación el navegador intenta acceder al documento correspondiente, es decir, a la web, en el servidor con 127.0.0.1, pero lo más probable es que no pueda encontrarlo, pues el archivo que se solicita no se encuentra en ese lugar. Si el usuario ha configurado un servidor de prueba propio, cabe la posibilidad de que el navegador encuentre allí un home.html, que en realidad es su archivo propio. Si por el contrario no se ha instalado ningún servidor, se mostrará un mensaje de error. Esta técnica se puede aplicar también para desactivar la publicidad en todo sistema. Para que cada entrada no tenga que realizarse a mano es posible encontrar en Internet archivos hosts listos y ampliados de forma regular.
El archivo hosts ejerce una importante influencia en la seguridad de la navegación. Del mismo modo que este archivo permite bloquear páginas dañinas, los delincuentes pueden usarlo para efectuar entradas maliciosas, de ahí la importancia de evitar aceptar entradas desconocidas de otras páginas web y vigilar que ningún malware efectúe estas entradas sin el conocimiento del usuario.