Introducción
Las computadoras se identifican por su nombre de host [nombre de la computadora host] y su dirección IP.
Asimismo, también tenemos un nombre común para todos los sistemas informáticos conocido como localhost. Aquí, el término "localhost" se asocia con el contexto de las redes informáticas. Desempeña un papel vital durante nuestro viaje como desarrollador o administrador de sistemas. Hay muchos casos de uso para "localhost", como pruebas de aplicaciones, documentación, pruebas de rendimiento de la red y bloqueo de sitios.
¿Qué es Localhost?
Localhost es un nombre de host que se refiere al sistema informático en el que se ejecuta el programa que realiza la llamada, lo que significa que la máquina hablará consigo misma cuando llamemos a localhost.
Nos ayuda a verificar los servicios de red en la máquina, incluso durante fallas de hardware de red. Cuando se utiliza "localhost", se accede a los servicios de red a través de la interfaz de red lógica denominada loopback. La dirección IP de la interfaz de bucle invertido es 127.0.0.1
. Por lo tanto, localhost se resuelve 127.0.0.1
como parte de la resolución de nombres.
¿Qué es una dirección de bucle invertido?
Loopback es una interfaz de red lógica que se encuentra en todos los sistemas operativos. Los paquetes transmitidos a través de esta interfaz se devuelven (en bucle) a la misma interfaz en la misma máquina. Por lo tanto, la interfaz se denomina loopback.
De acuerdo con los estándares IETF para el direccionamiento IPv4, todo el bloque de 127.0.0.0/8
se asigna para fines de bucle de retorno de red. De forma predeterminada, se configura una interfaz de bucle invertido después de cada instalación del servidor.
Echemos un vistazo al fragmento a continuación:
ip a show lo
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 76238871 bytes 6955286874 (6.9 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 76238871 bytes 6955286874 (6.9 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
sudo cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 sandbox1
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
Componentes internos de procesamiento de paquetes de bucle invertido
Normalmente, los paquetes de bucle invertido se distinguen de otros paquetes IP por sus direcciones. El procesamiento de paquetes de bucle invertido con la dirección de bucle invertido se produce en la capa de enlace de la pila TCP / IP. Este tráfico pasará por los propios sistemas informáticos. No afectará a las NIC de hardware como otros paquetes IP. Además, existe una regla que establece que los enrutadores no deben enrutar la dirección IP de bucle invertido.
Por ejemplo, cuando le pedimos la dirección 127.0.0.1
. La solicitud no se reenviará a Internet debido al primer octeto (127). Aquí, la pila de TCP / IP reconoce la solicitud y la redirige a la misma máquina.
ping -c 4 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.040 ms
--- localhost ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.035/0.039/0.043/0.008 ms
ping -c 4 google.com
PING google.com (143.150.21.36) 56(84) bytes of data.
64 bytes from maa-f13.1e100.net (143.150.21.36): icmp_seq=1 ttl=120 time=2.14 ms
64 bytes from maa-f13.1e100.net (143.150.21.36): icmp_seq=2 ttl=120 time=2.18 ms
64 bytes from maa-f13.1e100.net (143.150.21.36): icmp_seq=3 ttl=120 time=2.19 ms
64 bytes from maa-f13.1e100.net (143.150.21.36): icmp_seq=4 ttl=120 time=2.20 ms
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.147/2.180/2.203/0.051 ms
Pruebe la aplicación usando Localhost
La accesibilidad del servicio de la aplicación se produce primero a través de la interfaz de red. Si el servicio de la aplicación está mapeado con una interfaz física, se puede acceder a él desde el mundo exterior. Del mismo modo, si su aplicación está mapeada con una interfaz de bucle invertido lógico, solo se puede acceder a ella desde ese sistema informático específico y no se puede acceder desde el mundo exterior.
Siempre es fácil desarrollar y probar código desde el servidor local en lugar de desde otro host remoto. Para lograr esto, asignamos nuestro nombre de dominio de producción a una nueva dirección de loopback (127.0.1.100) en el archivo /etc/hosts
. Las entradas en / etc / hosts tienen prioridad sobre DNS.
El fragmento a continuación muestra la respuesta de ping orgánico del servidor local al servidor web remoto de Noviello. El mapeo del dominio se muestra en el segundo fragmento. Cuando verificamos cuidadosamente la salida después de mapear la IP del segmento 127 a Noviello.it en el archivo de host, el tráfico se enruta a una interfaz de red de bucle invertido.
ping -c 4 noviello.it
PING noviello.it (132.12.73.145) 56(84) bytes of data.
64 bytes from 132.12.73.145 (132.12.73.145): icmp_seq=1 ttl=59 time=34.5 ms
64 bytes from 132.12.73.145 (132.12.73.145): icmp_seq=2 ttl=59 time=34.5 ms
64 bytes from 132.12.73.145 (132.12.73.145): icmp_seq=3 ttl=59 time=34.5 ms
64 bytes from 1132.12.73.145 (132.12.73.145): icmp_seq=4 ttl=59 time=34.5 ms
--- noviello.it ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 34.521/34.529/34.541/0.227 ms
sudo cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 sandbox1
127.0.1.100 noviello.it
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
ping -c 4 noviello.it
PING noviello.it (127.0.1.100) 56(84) bytes of data.
64 bytes from noviello.it (127.0.1.100): icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from noviello.it (127.0.1.100): icmp_seq=2 ttl=64 time=0.094 ms
64 bytes from noviello.it (127.0.1.100): icmp_seq=3 ttl=64 time=0.042 ms
64 bytes from noviello.it (127.0.1.100): icmp_seq=4 ttl=64 time=0.055 ms
--- noviello.it ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3062ms
rtt min/avg/max/mdev = 0.042/0.066/0.094/0.020 ms
Conclusión
Localhost es el nombre predeterminado del sistema en el que se ejecuta nuestro programa, que nos ayuda a probar aplicaciones y solucionar problemas de red. Se logra mediante el uso de un mecanismo de bucle local a través de la interfaz de red de bucle invertido. Nos ayuda a probar el software sin depender de la configuración del hardware de la red. Como usuario de una computadora, es esencial tener un conocimiento básico de los términos interfaces de red localhost y loopback.