Pregunta

¿Siempre es posible hacer ping al localhost y se resuelve en 127.0.0.1?

Sé que Windows Vista, XP, Ubuntu y Debian lo hacen pero ¿lo hacen todos?

¿Fue útil?

Solución

Cualquier implementación correcta de TCP/IP reservará la dirección 127.0.0.1 para hacer referencia a la máquina local.Sin embargo, la asignación del nombre "localhost" a esa dirección generalmente depende del sistema. hosts archivo.Si eliminara la entrada localhost de hosts, entonces es posible que el nombre del host local ya no se resuelva correctamente.

Otros consejos

127.0.0.1 está reservado en cualquier pila de IP para el host local.

"localhost" como nombre de host es no garantizado que estará allí.Si la configuración del host/DNS está mal configurada, localhost no se resolverá.

Ejemplo en una caja de Debian:

topaz:/root# vi /etc/hosts
[comment out localhost entry]

topaz:/root# ping localhost 
ping: unknown host localhost

No.Para comenzar localhost Es una convención más que una regla.En general, está configurado de forma predeterminada, pero no hay nada que lo exija.

En segundo lugar, no hay nada que decir de que siempre puedes hacer ping a 127.0.0.1.Como ejemplo (en un sistema Unix), intente lo siguiente:

sudo ifconfig lo down ping 127.0.0.1

Como crucero Dicho esto, 127.0.0.1 (si existe) se define como la máquina local.Pero no tiene por qué existir.

La respuesta pedante (lo siento, Greg :), es leer RFC 3330:

   127.0.0.0/8 - This block is assigned for use as the Internet host
   loopback address.  A datagram sent by a higher level protocol to an
   address anywhere within this block should loop back inside the host.
   This is ordinarily implemented using only 127.0.0.1/32 for loopback,
   but no addresses within this block should ever appear on any network
   anywhere [RFC1700, page 5].

(Lo "normalmente" anterior probablemente debería leerse como "a menudo"; la mayoría de los sistemas operativos actuales admiten el uso de 127.0.0.0/8 como bucle invertido).

Con respecto a si "localhost" siempre se resuelve en 127.0.0.1, tiene razón, generalmente es lo mismo, pero técnicamente es específico de la implementación:

~> dig localhost.t...e.org

...

;; ANSWER SECTION:
localhost.t...e.org. 86400 IN    A       127.0.0.2

Si los servidores DNS a los que está conectado su cliente siguen rfc1912, entonces sí, localhost debería resolverse en 127.0.0.1.

RFC1912
4.1
...
   Certain zones should **always be present** in nameserver configurations:
           primary         localhost               localhost
           primary         0.0.127.in-addr.arpa    127.0
...
   The "localhost" address is a "special" address which always refers to
   the local host.  It should contain the following line:

           localhost.      IN      A       127.0.0.1

   The "127.0" file should contain the line:

           1    PTR     localhost.

Creo que localhost prácticamente se resuelve en 127.0.0.1 para la mayoría de las plataformas, pero para todas las IP que comienzan con 127...* resolver también en localhost.Intente hacer ping al 127.255.255.254 y seguirá respondiendo.

En teoría, hay casos en los que podría no existir.En la práctica, siempre está ahí.

Los firewalls decentes también le permiten filtrar el acceso en las interfaces loopback.Por lo tanto, es posible configurar una regla de firewall que elimine los paquetes de ping icmp que van al host local (127.0.0.1).Además, como todos ya han mencionado, ni siquiera se garantiza la existencia de la dirección localhost o 127.0.0.1 y la interfaz loopback.

La respuesta es:

Se requiere 127.0.0.1, a menudo denominado "bucle invertido".Aunque su computadora puede permitirle hacer cosas tontas, como deshabilitarla o configurar ese rango en una interfaz física, todas ellas no son válidas.

"localhost" es sólo un nombre de host que, por convención, debería ser 127.0.0.1. Como administrador del sistema o maestro de host, debe evitar configuraciones que permitan que localhost apunte a otras direcciones.

No debe editar su archivo de hosts para cambiar la dirección de "localhost".Debes configurar tus dominios para que tengan un host local.y la entrada localhost.domain.com que apunta a 127.0.0.1.

No debe permitir que sus servidores proxy respondan a "localhost" ni a ningún FQDN que comience con localhost.

De acuerdo.

La razón por la que lo resuelve es un registro en el archivo %WINDOWS_DIR%\System32\drivers\etc\hosts como este:

127.0.0.1 servidor local

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top