Wie ändere ich den Hostnamen unter CentOS 6.5?


49

Ich kann den Hostnamen auf meinem CentOS 6.5-Host scheinbar nicht ändern. Ich folge den Anweisungen, die ich hier gefunden habe: http://www.rackspace.com/knowledge_center/article/centos-hostname-change

Ich setze mein /etc/hostsmögen so ...

    [root@mig-dev-006 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain 
    192.168.32.128  ost-dev-00.domain.com ost-dev-00
    192.168.32.129  ost-dev-01.domain.com ost-dev-01

... dann mache ich meine /etc/sysconfig/networkdatei so ...

    [root@mig-dev-006 ~]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=ost-dev-00.domain.com
    NTPSERVERARGS=iburst

... dann laufe ich hostnameso ...

    [root@mig-dev-006 ~]# hostname ost-dev-00.domain.com

... und dann renne ich bash und alles scheint gut zu sein ...

    [root@mig-dev-006 ~]# bash

... aber wenn ich mein Netzwerk neu starte, kommt der alte Hostname zurück:

    [root@ost-dev-00 ~]# /etc/init.d/network restart
    Shutting down interface eth0:  Device state: 3 (disconnected)
                                                               [  OK  ]
    Shutting down loopback interface:                          [  OK  ]
    Bringing up loopback interface:                            [  OK  ]
    Bringing up interface eth0:  Active connection state: activating
    Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/6
    state: activated
    Connection activated
                                                               [  OK  ]
    [root@ost-dev-00 ~]# bash
    [root@mig-dev-006 ~]# 

... Ich kann es nicht herausfinden. Was mache ich hier falsch?


1
Haben Sie Ihre /etc/hostnameDatei bearbeitet ?
Anthon

Es ist keine /etc/hostnameDatei vorhanden. [root@smp-mig-dev-006 ~]# ls -l /etc/hostnameAusgängels: cannot access /etc/hostname: No such file or directory
Red Cricket

Könnte eine Centos-Sache sein. Was sagt Ihnen Ihre Manpage über die Dauerhaftigkeit hostname somename, dass sie nachhaltig wirkt? (Wenn nicht, warum machen Sie diesen Anruf?)
Anthon

3
Ich denke, /etc/hostnameist in CentOS 7, aber nicht in CentOS 6.
Pavel Šimerda

Mir ist klar, dass dies alt ist, aber ich rieche NetworkManager bei der Arbeit. Entweder das oder Sie haben HOSTNAME = in einer anderen Datei als dem Netzwerk (dh in Netzwerkskripten) gesetzt. Die Datei / etc / hostname wird in CentOS 6 nicht verwendet (es handelt sich um ein Systemding, dh CentOS 7 und höher). Überprüfen Sie den Inhalt der Datei / etc / sysconfig / network-scripts / ifcfg-eth0. was ist darin? Hinweis: Wenn Sie sich das Skript if_post von Redhat in network-scripts / ansehen, werden Sie feststellen, dass set_hostname einfach "hostname $ HOSTNAME" ausführt, wobei HOSTNAME eine Shell-Variable ist, die entweder in der Netzwerkdatei oder in der Datei ifcfg-eth0 festgelegt ist.
Mike S

Antworten:


67

Um den Hostnamen dauerhaft zu ändern, müssen Sie ihn an zwei Stellen ändern:

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=newHostName

und: eine gute Idee, wenn Sie Anwendungen haben, die die IP des Hostnamens auflösen müssen)

vi /etc/hosts 
127.0.0.1 newHostName
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

und dann

 rebooting the system

7
Am Ende dieser beiden Änderungen hinzufügen hostname newHostName, ist nicht notwendig, um neu zu
starten,

4
Das Bearbeiten der Datei / etc / hosts scheint nicht erforderlich zu sein
jgritty

2
Die Antwort wurde akzeptiert, aber zunächst dient die /etc/hostsÄnderung nur dazu, den Hostnamen auflösbar zu machen und nicht zu ändern. Sie /etc/sysconfig/networksieht genauso aus wie in OP. Kann mir jemand erklären, was genau OP benötigt, um zu ändern, damit es funktioniert?
Pavel Šimerda

3
Ich denke, eine richtige Antwort sollte als Antwort auf die Frage funktionieren. Das Wiederholen von Daten aus der Frage ist gut, solange die Antwort besagt, dass das OP sie korrekt konfiguriert hat, aber keine Aktionen ausgeführt hat, die zum Laden der neuen Konfiguration erforderlich sind (z. B. Neustart).
Pavel Šimerda

2
Neustart nicht erforderlich. Überprüfen Sie strace -f hostname blah. Der Kernel erhält die Nachricht sofort. / etc / hosts hat keinen Einfluss auf den Hostnamen des Hosts, zumindest in CentOS 6.5 (und 7). Und diese Antwort ist insofern falsch, als der Befehl hostname fehlt, der den Kernel über den Namen seines Hosts informiert.
Mike S

65

Eine Lösung für CentOS 7 finden Sie hier :

hostnamectl set-hostname <new hostname>

3
"hostnamectl" war für mich die einzige funktionierende Lösung unter CentOS Linux Release 7.2.1511
AJN,

..und Neustart, in meinem Fall.
WesternGun

Ich denke nicht, dass Sie neu starten müssen, nur ein erneutes Anmelden sollte funktionieren
FearlessHyena

5
Die Frage ist zu CentOS 6.5. CentOS 7 ist ein ganz anderes Biest und diese Antwort gehört nicht hierher.
Harald

15

Sie können Ihren Hostnamen mit einem einzigen Befehl ändern.

  • Befehl: hostname- Zeigt den alten Hostnamen an
  • Befehl: hostname <new name>-dies setzt den neuen Hostnamen

Beispiel

$ hostname mynewhost

Zum Beibehalten des neuen Hostnamens während des Neustarts

Bearbeiten Sie die Datei / etc / sysconfig / network so , dass sie wie folgt aussieht

NETWORKING=yes
HOSTNAME=myhostanme

Für Videohilfe


Ich glaube, das ist die richtigste Antwort. Es lohnt sich, folgendes hinzuzufügen: man hostname; zeigt mehr Optionen für die Einstellung hübsch, vorübergehend, statisch usw.
ekerner

Ich denke, es reicht nicht aus, beim Neustart hartnäckig zu sein. Sie müssen auch die Datei / etc / sysconfig / network ändern.
Pozinux

6

Abgesehen von den Antworten, die bereits für CentOS 6.5 bereitgestellt wurden,

CentOS 7 verfügt auch über ein textbasiertes Benutzeroberflächentool zum Ändern des Hostnamens ( und anderer Netzwerkeinstellungen ), das Bestandteil von Network Manager ist:

nmtui

startet diese Benutzeroberfläche:

Bildbeschreibung hier eingeben

das hat eine Option zu Set system hostname.

Die Textbenutzeroberfläche von NetworkManager wird standardmäßig in CentOS-7-x86_64-DVD-1511.iso-Image (Basisinstallation) installiert. Wenn es bei Ihnen nicht vorhanden ist, können Sie es mit dem folgenden Befehl installieren:

yum install NetworkManager-tui

2

Ich musste das für ein paar Maschinen tun. Hier ist ein einfaches Python-Skript, um Ihnen zu helfen. Geben Sie einfach den Namen des neuen Hosts als erstes Argument für das Skript an.

Beispiel: Wenn Sie das Skript changeHost.py nennen, führen Sie es aus als

changeHost.py [NewHostName]

Dabei ist NewHostName Ihr gewünschter Hostname.

Stellen Sie außerdem sicher, dass Sie dieses Skript als root ausführen.



#!/usr/bin/env python
import os

from sys import argv
script, newHostName = argv

print "Modifying network file..."
target = open("/etc/sysconfig/network","w")
target.truncate()
target.write("NETWORKING=yes\n")
target.write("HOSTNAME=")
target.write(newHostName)
target.write("\n")
target.close()

print "Modifying hosts file..."
target = open("/etc/hosts","w")
target.truncate()
target.write("127.0.0.1 ")
target.write(newHostName)
target.write(" localhost.localdomain localhosts\n")
target.close()

print "Set new hostname to %r" % newHostName
os.system('/bin/hostname ' + newHostName)

2
Hmm, das ist eine hässliche Schrift. Ich frage mich, ob Puppet ein besseres Werkzeug für den Umgang mit Hostnamen wäre.
Red Cricket


4
Dieses Skript ist ungefähr dreimal so lang wie es sein muss. Python ist das falsche Werkzeug für den Job. Ein Bash-Skript wäre viel kürzer, lesbarer und wartbarer.
Mike S

2

Unter CentOS 6.5 ist kein Neustart erforderlich, um den Hostnamen zu ändern.

Der folgende Befehl informiert den Kernel über den neuen Hostnamen:

# hostname new_hostname

Der folgende Befehl, damit der Hostname beim Neustart erhalten bleibt:

# sed -i "s/^HOSTNAME=.*/HOSTNAME=new_hostname/g" /etc/sysconfig/network

2

Wenn Sie auf dem Centos 7.x sind. Fügen Sie den folgenden Befehl ein.

nmtui

Es besteht die Möglichkeit , den Hostnamen des Systems festzulegen . Drücken Sie die Eingabetaste.

Schreiben Sie Ihren Hostnamen.

OK klicken.

Überprüfen Sie nun mit dem Befehl hostname .

Es wird Ihren gespeicherten Hostnamen haben.


1

Leider konnte ich den Hostnamen nicht ändern, indem ich folgende Eingaben machte:

/ etc / sysconfig / network

und

Datei / etc / hosts

Ich konnte den Hostnamen jedoch ändern, indem ich die folgende Datei bearbeitete:

vi /etc/hostname
server01

Starten Sie den Hostnamen neu und testen Sie ihn wie folgt:

hostname

2
Beachten Sie den Kommentar zum OP, der besagt, dass /etc/hostnamees in CentOS 7, aber nicht in CentOS 6
Fox,
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.