¿Por qué mi nombre de host aparece con la dirección 127.0.1.1 en lugar de 127.0.0.1 en / etc / hosts?

205

Esta puede ser una pregunta un poco novata, pero estaba mirando / etc / hosts en mi nueva instalación de Xubuntu y vi esto:

127.0.0.1 localhost
127.0.1.1 myhostname

En la mayoría de los 'nixes que he usado, se omite la segunda línea, y si quiero agregar mi nombre de host al archivo de hosts, simplemente haría esto:

127.0.0.1 localhost myhostname

¿Hay alguna diferencia entre estos dos archivos en algún sentido práctico?

Tom
fuente
Me pregunto si puedo eliminar la segunda línea o ¿algún proceso en debian / ubuntu regenerará la línea y la agregará nuevamente?
simgineer

Respuestas:

159

No hay mucha diferencia entre los dos; 127/8(por ejemplo: 127.0.0.0=> 127.255.255.255) están vinculados a la interfaz de bucle invertido.

La razón por la cual está documentada en el manual de Debian en el cap. 5 Configuración de red - 5.1.1. La resolución del nombre de host .

En última instancia, es una solución alternativa de error; El informe original es 316099 .

Daniel Pittman
fuente
55
La razón real: "Asociar el nombre de host del sistema con este último tuvo el efecto no deseado de convertir 'localhost.localdomain' en el nombre de host canónico asociado con el nombre de host del sistema. Es decir, 'hostname --fqdn' devolvió 'localhost.localdomain'".
cmroanirgo
De hecho, lo rastreé hasta este documento lists.debian.org/debian-boot/2005/06/msg00938.html y parece que es porque Thomas sentía la necesidad de usar 1.1 en lugar de 0.1, que son equivalentes, corríjame si estoy equivocado, pero eso significa que esta respuesta es realmente solo una miga de pan.
Brian Thomas el
@BrianThomas ese mensaje sugiere por qué no son equivalentes. Querían localhosty myhostnameser distintos; de lo contrario, uno sería un alias del otro. Tenga en cuenta que esto no funciona en IPv6, donde solo hay una dirección de bucle invertido. Se puede evitar utilizando un módulo NSS como se menciona en el hilo, porque puede ser más flexible que / etc / hosts y devolver diferentes nombres canónicos a pesar de que tengan la misma dirección IP. Sé esto porque mi sistema está configurado con un módulo NSS .
sourcejedi
46

Para resumir la información vinculada a:

  • Es (discutiblemente) útil tener una entrada en su /etc/hoststraducción del nombre de dominio completo de la máquina a su dirección IP permanente.
  • debian-installery, más específicamente, su netcfgcomponente, actualmente (hasta marzo de 2013 al menos) crea esta entrada.
  • Si no se sabe que la máquina tiene una dirección IP permanente, el instalador de Debian aún quiere que tenga ese tipo de entrada.
  • La dirección 127.0.1.1utiliza la interfaz de bucle invertido , respondida por su propia máquina, 127.0.0.1pero es una entrada distinta en la /etc/hostsque puede considerarse por separado de 127.0.0.1si es necesario.

Thomas Hood explica agregar esta entrada de la siguiente manera:

[Esto] asegurará que si se resuelve el nombre de host UNIX , siempre será su propio nombre de host canónico

pero:

A la larga, el nombre de host de UNIX no debe colocarse en / etc / hosts.

einpoklum
fuente
.. y entonces... ? ¿Debo usar 127.0.0.1 para mi fdqn? o 127.0.1.1? o el lan ip estático?
realtebo
1
@realtebo: 1. Es útil y, por lo tanto, lo agrega el instalador. 2. No hay "must" aquí; y solo es relevante cuando su FQDN no tiene una dirección permanente.
einpoklum
9

Yo también tenía curiosidad, y no me gustó ninguna de las otras respuestas porque al menos no parecían responder a lo que estaba buscando.

La respuesta: Mirando hacia atrás en este documento , casi parece que Thomas estaba diciendo que le está dando otra ip dedicada en el loopback que le permite ser canónico.

Ambos apuntan a tu loopback. El uso del siguiente 127.0.1.1 es una IP real, en el bucle invertido, mientras que 127.0.0.1 es el dispositivo mismo u otra ip en el bucle invertido. Ambos terminan en la misma subred, representando el loopback, pero están separados por ip. Son dns sabios equivalentes, pero separados debido a que tienen ip dedicada.

El punto es que puede tener todas sus entradas en una línea como esta

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

Si su nombre de host es local, lo que significa que no tiene una entrada DNS global de Internet asignada a una IP de Internet real, entonces en este caso Thomas estaba diciendo que NECESITA tener la segunda línea de entrada, como esta para dedicarla allí (a canónica).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname
Brian Thomas
fuente
para ser justos, después de que finalmente compuse esto de una manera que tenía sentido para mí, veo que eso es más o menos lo que einpoklum estaba tratando de explicar.
Brian Thomas
OK voto negativo, no estoy seguro de por qué. Todavía creo que ESTA es la MEJOR respuesta, o no lo hubiera dicho, después de aterrizar aquí. la respuesta original ayudó, pero no capturó todos los detalles. Yo iría con este.
Brian Thomas