Warum wird mein Hostname mit der Adresse 127.0.1.1 und nicht mit der Adresse 127.0.0.1 in / etc / hosts angezeigt?

205

Dies ist vielleicht eine etwas unanständige Frage, aber ich habe mir / etc / hosts auf meiner neuen Xubuntu-Installation angesehen und Folgendes gesehen:

127.0.0.1 localhost
127.0.1.1 myhostname

Bei den meisten Nixen, die ich verwendet habe, wird die zweite Zeile weggelassen, und wenn ich meinen Hostnamen zur hosts-Datei hinzufügen möchte, mache ich einfach Folgendes:

127.0.0.1 localhost myhostname

Gibt es einen praktischen Unterschied zwischen diesen beiden Dateien?

Tom
quelle
Ich frage mich, ob ich die zweite Zeile einfach löschen kann oder ob ein Prozess in Debian / Ubuntu die Zeile neu generieren und wieder hinzufügen wird.
Simgineer

Antworten:

159

Es gibt keinen großen Unterschied zwischen den beiden; 127/8(zB: 127.0.0.0=> 127.255.255.255) sind alle an die Loopback-Schnittstelle gebunden.

Der Grund dafür ist im Debian-Handbuch in Kap. 5 Netzwerkeinrichtung - 5.1.1. Die Auflösung des Hostnamens .

Letztendlich handelt es sich um eine Fehlerumgehung. Der ursprüngliche Bericht lautet 316099 .

Daniel Pittman
quelle
5
Der eigentliche Grund: "Das Verknüpfen des Systemhostnamens mit dem letzteren hatte den unerwünschten Effekt," localhost.localdomain "zum kanonischen Hostnamen zu machen, der dem Systemhostnamen zugeordnet ist. Das heißt," hostname --fqdn "gab" localhost.localdomain "zurück."
Cmroanirgo
Ich habe es tatsächlich auf diese doc lists.debian.org/debian-boot/2005/06/msg00938.html zurückgeführt und es scheint, dass es so ist, weil Thomas das Bedürfnis hatte, 1.1 anstelle von 0.1 zu verwenden, was äquivalent ist, korrigieren Sie mich Wenn ich falsch liege, aber das bedeutet, dass diese Antwort wirklich nur ein Breadcrumb ist?
Brian Thomas
@ BrianThomas diese Nachricht legt nahe, warum sie nicht gleichwertig sind. Sie wollten localhostund myhostnamesollten verschieden sein - sonst wäre einer ein Pseudonym für den anderen. Beachten Sie, dass dies in IPv6 nicht funktioniert, wenn nur eine Loopback-Adresse vorhanden ist. Es kann vermieden werden, indem ein NSS-Modul verwendet wird, wie im Thread erwähnt, da es flexibler als / etc / hosts ist und unterschiedliche kanonische Namen zurückgibt, obwohl sie dieselbe IP-Adresse haben. Ich weiß das, weil mein System mit einem solchen NSS-Modul konfiguriert ist .
Sourcejedi
46

So fassen Sie die verknüpften Informationen zusammen:

  • Es ist (fraglich) nützlich, einen Eintrag in der /etc/hostsÜbersetzung des vollqualifizierten Domänennamens des Computers in seine permanente IP-Adresse zu haben.
  • debian-installerDie netcfgKomponente erstellt diesen Eintrag derzeit (mindestens bis März 2013).
  • Wenn nicht bekannt ist, dass der Rechner eine permanente IP-Adresse hat, möchte der Debian-Installer, dass er diese Art von Eintrag hat.
  • Die Adresse 127.0.1.1verwendet die Loopback-Schnittstelle , die von Ihrem eigenen Computer beantwortet wird, ist aber genau wie 127.0.0.1ein /etc/hostsseparater Eintrag, der bei Bedarf getrennt von der Adresse berücksichtigt werden kann 127.0.0.1.

Thomas Hood erklärt das Hinzufügen dieses Eintrags wie folgt:

[This] stellt sicher, dass der UNIX-Hostname immer sein eigener kanonischer Hostname ist , wenn er aufgelöst wird

aber:

Auf lange Sicht sollte der UNIX-Hostname überhaupt nicht in / etc / hosts eingetragen werden.

einpoklum
quelle
.. und so... ? muss ich Benutzer 127.0.0.1 für mein fdqn? oder 127.0.1.1? oder die statische lan ip?
Realtebo
1
@realtebo: 1. Es ist nützlich und wird daher vom Installationsprogramm hinzugefügt. 2. Hier gibt es kein "Muss"; und es ist nur relevant, wenn Ihr FQDN keine feste Adresse hat.
Einpoklum
9

Ich war selbst neugierig und ich mochte keine der anderen Antworten, weil sie nicht zu beantworten schienen, wonach ich zumindest suchte.

Die Antwort: Wenn Sie auf dieses Dokument zurückblicken, sieht es fast so aus, als würde Thomas ihm eine andere dedizierte IP auf dem Loopback geben, damit es kanonisch ist.

Beide zeigen auf Ihren Loopback. Die Verwendung der folgenden 127.0.1.1 ist eine tatsächliche IP im Loopback, wohingegen 127.0.0.1 entweder das Gerät selbst oder eine andere IP im Loopback ist. Beide landen im selben Subnetz, repräsentieren den Loopback, sind jedoch durch ip getrennt. Sie sind dns weise äquivalent, aber getrennt, weil sie engagierte IP haben.

Der Punkt ist, dass Sie alle Ihre Einträge in einer Zeile haben können

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

Wenn Ihr Hostname lokal ist, was bedeutet, dass kein globaler Internet-DNS-Eintrag einer tatsächlichen Internet-IP zugeordnet ist, hat Thomas in diesem Fall gesagt, dass Sie die zweite Eingabezeile haben MÜSSEN , um sie dort zu widmen (kanonisch).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname
Brian Thomas
quelle
Um ehrlich zu sein, nachdem ich das endlich so komponiert habe, dass es für mich Sinn macht, sehe ich, dass Einpoklum versucht hat zu erklären, wie es im Nachhinein aussieht.
Brian Thomas
OK negative Abstimmung, nicht sicher warum. Ich glaube immer noch, dass DIES die BESTE Antwort ist, oder ich hätte es nicht gesagt, nachdem ich hier gelandet bin. Die ursprüngliche Antwort hat geholfen, aber nicht alle Details erfasst. Ich würde mit diesem gehen.
Brian Thomas