Welche Konsequenzen hat das Festlegen des Hostnamens?

13

Ich habe mehrere Amazon EC2-Server und verwalte die Konfiguration mit Chef. Ich möchte den Hostnamen so einstellen, dass die Standard-Bash-Eingabeaufforderung hilfreicher ist.

Im Moment nach dem Start eines neuen Servers ist dieser wie folgt eingestellt:

root@ip-10-123-123-123

Da ich auf diesen Boxen Ubuntu 12 verwende, habe ich die entsprechende Manpage für den Hostnamen konsultiert . Es enthält viele gute Informationen zum Festlegen des Hostnamens und der fqdn, aber es sagt mir nicht wirklich, was ich wissen möchte:

Welche Konsequenzen hat das Festlegen des Hostnamens?

Ich möchte annehmen, dass das Festlegen des Hostnamens hauptsächlich für Benutzer und Systemadministratoren eine Annehmlichkeit ist, indem der Box ein Gesicht / ein schöner Name gegeben wird, damit sie intern leichter erkannt werden kann (über die Eingabeaufforderung, E-Mails, die gesendet werden, etc), aber ich bin nicht positiv.

Ich sehe den Hostnamen nicht in der /etc/hostsDatei, was ein gutes Zeichen dafür ist, dass er sich bei Änderungen nicht negativ auswirkt:

127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Bin ich auf dem richtigen Weg? Welche Konsequenzen hat das Festlegen des Hostnamens?

Aktualisieren

Ich habe versucht, den Hostnamen auf meiner ec2-Instanz von auf ip-10-123-123-123zu ändern , webserverund das hostname --fqdnfunktioniert nicht mehr. Wenn ich es zurück lege, funktioniert es gut. Apache gibt mir auch einen Fehler beim Starten, dass es den fqdn nicht zuverlässig bestimmen kann. Ich nehme an, es muss eine Möglichkeit geben, den Hostnamen festzulegen, ohne die FQDN zu verfälschen.

cwd
quelle
Ich fand auch Können wir leicht zu merkende Hostnamen für EC2-Instanzen festlegen? und postete eine Antwort basierend auf dem, was ich gefunden habe, aber es hat immer noch einige Löcher.
KWD

Antworten:

15

Ich wollte nur hinzufügen, dass der Hostname auflösbar sein sollte, entweder über DNS oder / etc / hosts. Wenn dies nicht der Fall ist, können viele Tools aufgrund einer fehlgeschlagenen Suche nach Hostnamen lange Verzögerungen aufweisen. Ich hatte dieses Problem mit vielen GUI-Programmen.

Daniel Kullmann
quelle
Dies ist ein sehr wichtiger Punkt. Ich würde mehr als einmal abstimmen, wenn ich könnte. Vielen Dank!
KWD
Diese tatsächlich tut die Frage beantworten. Wenn Sie Ihren Hostnamen in etwas ändern, das sich tatsächlich auflöst, hostname --fqdnfunktioniert das immer noch.
Bryant
12

Der Hostname (der vom hostnameBefehl festgelegt und angezeigt und normalerweise in gespeichert wird /etc/hostname) wird von lokalen Anwendungen verwendet. Es ist anderen Computern nicht bekannt und kann nicht zur Kontaktaufnahme mit dem Host verwendet werden. Der Hostname wird normalerweise in Shell-Eingabeaufforderungen angezeigt und wird möglicherweise von verschiedenen Anwendungen zu Protokollierungszwecken verwendet, z. B. von Versionskontrollsoftware, wenn Sie ein Commit durchführen.

Es gibt keine technische Verbindung zwischen dem Hostnamen und einem Namen, den andere Computer zur Bezeichnung Ihres Computers verwenden könnten. Das DNS wird normalerweise zum Benennen eines Computers in einem Internetkontext (genauer gesagt einer Netzwerkschnittstelle) verwendet. Es ist eine gute Idee, wenn Ihr Hostname mit der ersten Komponente des DNS-Namens der Netzwerkschnittstelle Ihres Computers identisch ist, die die meisten Menschen auf der Welt sehen. Wenn Ihr Server beispielsweise über die eth0Ethernet-Schnittstelle mit dem Rest der Welt verbunden ist und die IP-Adresse von eth0den Namen hat foo.example.com, empfiehlt es sich, fooals Hostnamen zu wählen . Wenn Sie dies tun, foo.example.comwird häufig der vollqualifizierte Domänenname (FQDN) genannt(vollqualifizierter Domainname) Ihres Rechners. Es steht Ihnen jedoch frei, sie unpassend zu lassen. Eine Diskrepanz kann für den Administrator verwirrend sein, ist jedoch für die Software unerheblich.

Der Hostname kann von einigen Netzwerkprotokollen verwendet werden, um den Host zu identifizieren. In diesem Fall muss es von einem lokalen Prozess gesendet werden, der auf dem Host ausgeführt wird. In einigen Setups sendet beispielsweise ein DHCP- Client den Hostnamen an den DHCP-Server, um eine IP-Adresse abzurufen. Der DHCP-Server kann den beanspruchten Hostnamen verwenden, um zu entscheiden, welche IP-Adresse dem Client zugewiesen werden soll. In solchen Konfigurationen muss der Hostname mit dem DNS-Namen übereinstimmen.

Verwandte: Warum ist mein Hostname in Emacs anders? ; So machen Sie einen Computer über den Hostnamen vom LAN aus zugänglich

Gilles 'SO - hör auf böse zu sein'
quelle
1
Es ist nicht wahr, dass es von anderen Maschinen nicht bekannt ist. Dieser Hostname wird von vielen Betriebssystemen an den DHCP-Server gesendet, wenn eine DHCP-Lease angefordert wird, und viele DHCP / DNS-Server verwenden ihn zum Aktualisieren der lokalen DNS-Zone. Der Hostname wird von mDNS verwendet, wird von Samba verwendet (in den meisten Standard-Samba-Installationen), erscheint auf dem HTTP-Server ...
Stéphane Chazelas
@sch Guter Punkt zum Erwähnen von DHCP. Ich verstehe Ihren Standpunkt zu httpd nicht: Es ist ein lokaler Prozess, der möglicherweise entscheidet, den Hostnamen über das Netzwerk zu senden, aber der Hostname ist anderen Computern noch nicht bekannt, es sei denn, der Host hat ihn gesendet.
Gilles 'SO- hör auf böse zu sein'
Ich denke, das ist eine gute Antwort, aber nachdem ich ein bisschen mehr herumgespielt habe, bin ich mir nicht sicher, ob es vollständig ist. Es scheint, dass, wenn ich meinen Hostnamen (ip-10-123-123-123) in irgendetwas anderes hostname --fqdnändere, dies auf einer ec2-Instanz nicht mehr funktioniert und Apache beim Start eine Warnung ausgibt, dass es den fqdn nicht zuverlässig bestimmen kann. Ich bin mir nicht sicher, wo ich weitere Informationen darüber finden soll, wie all diese Dinge zusammenhängen. Danke, dass du mich dazu gebracht hast.
KWD
1
hostname --fqdn(DNS) scheint bei der Protokollierung verwendet zu werden. unix.stackexchange.com/questions/319737/…
sourcejedi