Wenn Sie unter CentOS einen neuen Hostnamen festlegen, wird dieser nach dem Neustart wieder geändert

8

Unter CentOS (5.x) habe ich einen VPS, dessen Hostname auf "olddomain.com" gesetzt ist. Zumindest ist dies die Domäne, die ich beim Eingeben des Befehls "Hostname" erhalte.

Ich möchte es in 'localhost.localdomain' ändern, weil ich denke, dass es allgemeiner und zuverlässiger ist.

localhost.localdomain ist bereits in folgenden Dateien vorhanden: / etc / sysconfig / network AND / etc / hosts

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain
GATEWAY=95.xx.xx.xx

UND

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6

Als nächstes habe ich diese Befehle ausprobiert:

hostname localhost.localdomain

UND

hostname -v localhost.localdomain

Der Befehl "hostname" gibt jetzt diesen neuen Wert zurück. Aber nach dem Neustart wechselt es zurück zu olddomain.com oder zumindest ist dies der Befehl "hostname", der zurückgegeben wird.

Sonst noch etwas zu bearbeiten?

adrianTNT
quelle
1
Haben Sie auch den Namen / etc / host geändert?
Clmssz
Ist NetworkManager aktiviert? In diesem Fall stört NM manchmal Ihre manuelle Konfiguration. Führen Sie eine Aktion durch, chkconfig NetworkManager --listum festzustellen, ob sie aktiviert ist.
Stefan Lasiewski
Es heißt: NetworkManager 0: aus 1: aus 2: aus 3: aus 4: aus 5: aus 6: aus
adrianTNT
@spud meinst du / etc / hosts Datei? Ich habe es nicht bearbeitet, da es dort bereits "localhost.localdomain" enthält.
AdrianTNT

Antworten:

9

Fügen Sie der /etc/sysctl.confKonfigurationsdatei die folgenden Zeilen hinzu .

kernel.hostname = hostname
kernel.domainname = domain.com

Führen Sie den Befehl aus sysctl -p /etc/sysctl.conf, um die Änderungen Ihrer /etc/sysctl.confKonfigurationsdatei zu lesen und anzuwenden .

bintut
quelle
Wäre das richtig? kernel.hostname = localhost; kernel.domainname = localhost.localdomain
adrianTNT
Nicht wirklich. Erstens ist das Semikolon nicht erforderlich. Zweitens sollte jeder Parameter in einer eigenen Zeile stehen. Drittens ist es nicht sinnvoll, einen FQHN von "localhost.localhost.localdomain" zu haben.
Bintut
Oder löschen Sie die Zeilen in Ihrem /etc/sysctl.conf, die verhindern, dass Ihre Hostnamenzuweisung einen Neustart überlebt. Vielen Dank!
Wildcard
2

Haben Sie die Datei / etc / sysconfig / network bearbeitet? Oder zeigen Sie nur den Inhalt? Der Befehl hostname bearbeitet diese Dateien nicht. Wenn das System die Init-Skripte startet, lesen Sie den Hostnamen aus den Konfigurationsdateien und diese Einstellung wird dann an den Befehl hostname übergeben. Wie in anderen Beiträgen erwähnt, müssen Sie außerdem Ihre Hosts-Datei so bearbeiten, dass die Zuordnung für Ihren Hostnamen <-> ip auf dem lokalen Host korrekt ist.

Weitere Informationen finden Sie in der Red Hat-Dokumentation

Verwenden Sie auch Network Manager, um Ihre Netzwerkschnittstellen zu verwalten? In diesem Fall müssen Sie in NM gehen und sicherstellen, dass die Einstellungen auch dort übereinstimmen.

Roter Smoking
quelle
Ich habe keinen Netzwerkmanager verwendet. Ich konnte dies lösen, nachdem ich die beiden Konfigurationsdateien auf einen anderen Wert bearbeitet und dann neu gestartet und dann wieder in localhost.localdomain geändert hatte, und es blieb so. Vielen Dank.
AdrianTNT
2

Ich habe die Dateien nicht bearbeitet /etc/sysconfig/networkund /etc/hostsda diese bereits den gewünschten Hostnamen (localhost.localdomain) hostname localhost.localdomainenthielten, blieb er nach dem Neustart nicht auf Befehl gespeichert.

Aber dann hat mein Host diese beiden Dateien unter einem anderen Hostnamen bearbeitet, den Server neu gestartet (ohne einen anderen Befehl, nur bearbeitet) und der neue Hostname wurde angewendet und blieb geändert. Dann habe ich die Dateien erneut bearbeitet und sie auf localhost.localdomain gesetzt, da sie sich auf einem anderen meiner VPS befinden. Jetzt wurden sie aktualisiert und blieben wie gewünscht bei localhost.

adrianTNT
quelle
0

Ich bin mir ziemlich sicher, dass /etc/sysconfig/networkdas veraltet ist. Versuchen Sie /etc/sysconfig/networking/profiles/default/hostsund /etc/sysconfig/networking/profiles/default/network.

Tim
quelle
/ etc / sysconfig / Networking / Profile / Standard / Hosts ist dasselbe wie die oben genannten Hosts (keine alte_Domäne), und die zweite existiert nicht: / etc / sysconfig / Netzwerk / Profile / Standard / Netzwerk
adrianTNT
1
/etc/sysconfig/networkist nicht veraltet. Dies ist der richtige Ort, um einige Einstellungen vorzunehmen. Siehe docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/…
Stefan Lasiewski