Domainnamen einschließen oder nicht in / etc / hosts?


15

Ich richte einen VMWare-Cluster von CentOS-Knoten ein. Ist es empfehlenswert, einen Domainnamen nach dem Computer einzufügen? Was sind die potenziellen Probleme, wenn man es weglässt? Erschwert oder vereinfacht eine Domain die Konfiguration?

Zum Beispiel, wenn mein Knoten an ist 192.168.1.93, soll ich ändern /etc/hostsaus

127.0.0.1 localhost.localdomain localhost

zu

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

oder

127.0.0.1 localhost
192.168.1.93 computenode1

oder

#127.0.0.1 localhost
192.168.1.93 computenode1

oder

192.168.1.93 localhost
192.168.1.93 computenode1

Antworten:


24

Das Eingeben des Domänennamens /etc/hostsist optional, und Sie können ein System ohne negative Auswirkungen ausführen.

Der einzige Nachteil ist, dass der vollständig qualifizierte Hostname des Systems nicht ordnungsgemäß angezeigt wird. Zum Beispiel hostname -f.

Die Art und Weise, wie die Erkennung des vollqualifizierten Hostnamens funktioniert:

  1. Zuerst wird der Hostname oder "Kurzname" abgerufen. Dies ist die Ausgabe von uname -noder hostname.
  2. Er erhält dann die IP-Adresse für diesen Hostnamen, indem er nachfragt /etc/hosts(oder was auch immer Sie haben /etc/resolv.conf, und auf die letzteren Quellen zurückgreift, wenn sie nicht in gefunden werden /etc/hosts).
  3. Sobald es die IP hat, führt es eine umgekehrte Suche durch, indem es sich erneut erkundigt /etc/hosts.
  4. Sobald ein /etc/hostsEintrag vorliegt, wird der erste Eintrag als vollständig qualifizierter Hostname verwendet.

Kurz gesagt, wenn Sie möchten, dass ein vollständig qualifizierter Hostname funktioniert, sollten Sie Folgendes tun:

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

oder

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname

1
Ich habe diesen Punkt nicht bedacht. Ein vollständig qualifizierter Hostname ist für einen Desktop-PC unbrauchbar und kann für einen Laptop problematisch sein (da ein Laptop wahrscheinlich in ein anderes Netzwerk eingebunden wird), ist jedoch für einen Server nützlich. Apache2 beklagt sich beispielsweise, wenn es seinen vollqualifizierten Domänennamen nicht ermitteln kann.
Lgeorget

@lgeorget Sie können auch einfach das verwenden, libnss-myhostnamedas sich um die Auflösung Ihres FQDN kümmert, aber keinen Eintrag in/etc/hsots
Ulrich Dangel,

Die Konfiguration oben kann Probleme finden diese Diskussion auf Debians derzeitige Praxis der Einstellung der oben hostsDatei, und diese eine auf der Nutzung (oder deren Fehlen) des localhost.localdomainEintrags.
Joó Ádám

1
sudobeschwert sich auch, wenn der Hostname nicht in /etc/hosts:sudo: unable to resolve host <hostname>
x-yuri

3

Solange Ihr Host mit Ihrem Domain-Namen einverstanden ist, /etc/hostsändert sich nichts, wenn Sie ihn angeben oder nicht . Eine andere Methode besteht darin, sie als domainParameter in angeben zu lassen /etc/resolv.conf. Wenn Sie es nicht angeben, kann dies Ihr Leben vereinfachen, wenn es eines Tages von Ihrem Netzwerkadministrator geändert wird. Die Angabe ändert meines Wissens nichts.

Sie sollten auf jeden Fall verlassen 127.0.0.1 localhostoder 127.0.0.1 localhost localhost.localdomainin /etc/hosts. Einige Anwendungen könnten ein merkwürdiges Verhalten zeigen, wenn sie localhostan etwas anderes als Ihre Loopback-Adresse gebunden sind, da dies eine wirklich, wirklich, unerwartete Einstellung ist.


2

Sie müssen den vollqualifizierten Domainnamen an der ersten Stelle nach der IP-Adresse angeben.

Wie wir in lesen man 5 hosts:

Für jeden Host sollte eine einzelne Zeile mit den folgenden Informationen vorhanden sein:

IP-Adresse kanonischer_Hostname [Aliase ...]

Wenn Sie die Regel nicht befolgen, kann es vorkommen, dass Software beschädigt wird. Beispielsweise beginnt das Puppet-Konfigurationsverwaltungssystem möglicherweise, Ihren Hostnamen bei jedem Lauf vor und zurück zu ändern, nur weil Sie keinen Domänenteil angegeben haben oder weil Sie einen Alias ​​ohne Domäne in die Zeile vor dem vollqualifizierten Domänennamen gesetzt haben.


0

Ich bin nicht sicher, ob dies wirklich "optional" ist (wie Patrick oben angegeben hat). Ich habe gerade ein Problem mit nfs-Berechtigungen gefunden, die auf nobody zurückgesetzt wurden: nobody. Es sieht so aus, als ob für die ordnungsgemäße Arbeit mit NFS-Bereitstellungen (unter Verwendung von IDMAPD) ​​der Domänenname des Servers genau mit dem Domänennamen des Clients übereinstimmen muss. Aus einigen Dokumenten habe ich herausgefunden - hostname -fabzüglich, dass der tatsächliche Hostname zwischen Client und Server identisch sein muss, ODER Sie müssen einen Domainnamen für den Client in angeben /etc/idmapd.conf, was bedeutet, dass jeder Client.

Gibt es eine offizielle Regel für die Angabe des Domainnamens? Der domainnameBefehl scheint ihn nicht aus / etc / hosts zu übernehmen. Das Einfügen von / etc / hosts stört mich also, da er an mehreren Orten im Dateisystem gespeichert ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.