In den wenigen Jahren, in denen ich Linux als Hauptsystem verwendet habe, insbesondere Fedora, wurde mein Hostname immer auf "localhost" gesetzt, mit der Ausnahme, dass ich mich mit einigen Netzwerken verbinde und dies meine IP wird. Heute habe ich folgendes Verhalten erlebt, das ich allerdings nur schwer verstehe.
Ich habe eine Ubuntu-Installation auf einer anderen Partition meines Laptops eingerichtet und während der Ubuntu-Installation einen Computernamen / Hostnamen festgelegt. Als ich Fedora neu startete, hatte Fedora meinen Hostnamen auf den Namen aktualisiert, den ich in der Ubuntu-Installation festgelegt hatte.
Ich dachte immer, der Hostname sei auf der Partition der Distribution-Installation konfiguriert und gespeichert, und tatsächlich lautete der Inhalt von / etc / hostname auf Fedora immer noch "localhost.localdomain", aber wenn der hostname
Befehl ausgeführt wird, wird der neue Hostname angezeigt. Beide Installationen teilen sich eine EFI-Boot-Partition, sind aber ansonsten diskret. Ich frage mich, woher und warum die Fedora-Installation den neuen Hostnamen liest.
hosts:
in /etc/nsswitch.conf?hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Antworten:
Das
hostname
Programm führt einen Systemaufruf ohne Namen aus, wie aus dem Ausführen ersichtlich ist:In der Manpage zu uname syscall heißt es, dass syscall die folgende Struktur aus dem Kernel abruft:
Der Domainname stammt also aus dem NIS / YP-System, wenn wir dem Kommentar glauben. Höchstwahrscheinlich gibt es einen NIS / YP-Dienst in Ihrem Netzwerk, der den vom Ubuntu-Betriebssystem festgelegten Namen an Sie zurückgibt.
quelle
hostname(1)
Manpage, die erklärt, wie der Hostname gesetzt und zurückgegeben wird. Trotz der Namensähnlichkeit hat der NIS / YP-Domänenname nichts mit dem vom Resolver zurückgegebenen FQDN / DNS-Domänennamen zu tun. Wenn Sie NIS / YP nicht konfiguriert haben, wird der NIS / YP-Domänenname nicht festgelegt.Es gibt zwei unabhängige (!) Konzepte für einen Hostnamen auf einem Linux-System.
Der Kernel betrachtet den lokalen Hostnamen (wie er von den Systemaufrufen gethostname / uname und sethostname behandelt wird) unabhängig von der Netzwerkkonnektivität. Diese Mechanismen wären weiterhin vorhanden, wenn Sie einen Kernel ohne TCP / IP-Netzwerkfähigkeit erstellen würden.
Es gibt einen oder mehrere Hostnamen, die tatsächlich mit TCP / IP-Adressen (oder einem anderen Netzwerkstapel - nicht alle Netzwerkadressen auf der Welt sind IP-Adressen!) Verbunden sind. Diese Adressen werden im Benutzerbereich von den Resolver-Bibliotheksfunktionen (Teil von) verwaltet libc), der einen solchen Namen ermittelt, indem er die Quellen (lokale Datei / etc / hosts, DNS, NIS ....) gemäß den Regeln interpretiert, die Sie in den entsprechenden Konfigurationsdateien (/etc/nsswitch.conf, / etc.) angegeben haben /host.conf etc ...).
quelle
Wahrscheinlich ist Ubuntu während der Installation über Ihren Heimrouter mit dem Internet verbunden. Dazu hat er seinen Hostnamen an den Router gemeldet und eine temporäre lokale IP erhalten.
Wenn Sie jetzt Fedora neu starten, wird eine Verbindung zum selben Router hergestellt, um dessen IP-Adresse zu erhalten. Die für Ubuntu erstellte alte Lizenz ist jedoch weiterhin gültig. Da es sich um denselben Computer mit derselben Netzwerkkarte und derselben Hardware-MAC-Adresse handelt, wird dieselbe Lease wiederverwendet.
Ich vermute, dass der Router den Hostnamen sendet, auf dem das IP-Lease registriert wurde, und Fedora das aufnimmt.
Leider habe ich keine Beweise oder Zitate, um meine Antwort zu stützen, ich kann nur mit der persönlichen Erfahrung sprechen, Ubuntu in Dual-Boot mit Windows zu installieren. Damals weigerte sich Ubuntu, während der Installation denselben Hostnamen wie unter Windows zu verwenden, da behauptet wurde, der Name sei bereits im Netzwerk vorhanden. Wahrscheinlich passiert hier etwas Ähnliches.
Um zu überprüfen, ob das, was ich vermute, auch auf Ihre Situation zutrifft, versuchen Sie, Ihre IP-Lease in der Konfigurationsoberfläche Ihres Routers zu widerrufen und dann Fedora neu zu starten. Wenn Ubuntus Hostname nicht mehr benötigt wird, sollte ich recht haben.
quelle