Comment changer le nom d'hôte sur CentOS 6.5?

48

Je n'arrive pas à changer le nom d'hôte sur mon hôte CentOS 6.5. Je suis les instructions que j'ai trouvées ici: http://www.rackspace.com/knowledge_center/article/centos-hostname-change

Je mets mon /etc/hostscomme si ...

    [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

... alors je fais mon /etc/sysconfig/networkfichier comme si ...

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

... alors je cours hostnamecomme si ...

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

... et puis je cours bash et tout semble bien aller ...

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

... mais lorsque je redémarre mon réseau, l'ancien nom d'hôte revient:

    [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 ~]# 

... Je ne peux pas comprendre. Qu'est-ce que je fais mal ici.

Cricket Rouge
la source
1
Avez-vous édité votre /etc/hostnamefichier?
Anthon
Il n'y a pas de /etc/hostnamefichier. [root@smp-mig-dev-006 ~]# ls -l /etc/hostnamesortiesls: cannot access /etc/hostname: No such file or directory
Red Cricket
Peut-être une chose Centos. Qu'est-ce que votre page de manuel vous dit de la permanence de hostname somename, qu'elle a un effet durable? (sinon pourquoi faites-vous cet appel?)
Anthon
3
Je pense que /etc/hostnamec'est dans CentOS 7 mais pas dans CentOS 6.
Pavel Šimerda
Je me rends compte que c'est vieux, mais je sens le travail de NetworkManager au travail, soit vous pouvez avoir HOSTNAME = défini dans un autre fichier que network (c'est-à-dire, dans les scripts réseau). Le fichier / etc / hostname n’est pas utilisé dans CentOS 6 (c’est une chose système; c’est-à-dire CentOS 7 et plus). Vérifiez le contenu du fichier / etc / sysconfig / network-scripts / ifcfg-eth0; ce qu'il y a dedans? Remarque: Si vous regardez le script if_post de Redhat dans network-scripts /, vous verrez que set_hostname exécute simplement "hostname $ HOSTNAME", HOSTNAME étant une variable shell définie dans le fichier réseau ou dans le fichier ifcfg-eth0.
Mike S

Réponses:

67

pour changer le nom d'hôte de façon permanente, vous devez le changer à deux endroits:

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

et: une bonne idée si vous avez des applications qui ont besoin de résoudre l'adresse IP du nom d'hôte)

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

puis

 rebooting the system
Networker
la source
7
À la fin de ces deux changements, ajoutez hostname newHostName, il n'est pas nécessaire de redémarrer, je pense
Edakos
4
La modification du fichier / etc / hosts ne semble pas nécessaire
jgritty
2
La réponse a été acceptée, mais d’abord, le /etc/hostschangement n’est là que pour rendre le nom d’hôte résolvable, pas pour le changer, et /etc/sysconfig/networka la même apparence que dans OP. Quelqu'un peut-il expliquer exactement ce que OP doit changer pour que cela fonctionne?
Pavel Šimerda le
3
Je pense qu'une réponse correcte devrait fonctionner comme une réponse à la question. Répéter les données de la question est utile tant que la réponse indique que l'OP l'a configurée correctement mais qu'elle n'a pas effectué les actions nécessaires pour charger la nouvelle configuration (par exemple, un redémarrage).
Pavel Šimerda
2
Redémarrage non nécessaire. Vérifiez strace -f hostname blah. Le noyau reçoit le message immédiatement. / etc / hosts n'affecte pas le nom d'hôte de l'hôte, du moins dans CentOS 6.5 (et 7). Et cette réponse est incorrecte dans la mesure où il manque la commande hostname, qui informe le noyau du nom de son hôte.
Mike S
65

Une solution pour CentOS 7 peut être trouvée ici :

hostnamectl set-hostname <new hostname>
Steffen Kanster
la source
3
"hostnamectl" était la seule solution qui fonctionnait pour moi avec la version 7.2.1511 de CentOS Linux
AJN le
..et redémarrer, dans mon cas.
WesternGun
Je ne pense pas que vous ayez besoin de redémarrer, il vous suffit de vous reconnecter pour vous reconnecter
FearlessHyena
5
La question concerne CentOS 6.5. CentOS 7 est une bête complètement différente et cette réponse n’a pas sa place ici.
Harald
15

Vous pouvez changer votre nom d'hôte avec une seule commande.

  • Commande: hostname- cela affiche l'ancien nom d'hôte
  • Commande: hostname <new name>-cela définit un nouveau nom d'hôte

Exemple

$ hostname mynewhost

Pour persister le nouveau nom d'hôte après le redémarrage

éditez le fichier / etc / sysconfig / network comme ci-dessous

NETWORKING=yes
HOSTNAME=myhostanme

Pour l'aide vidéo

Vishwanath gowda k
la source
Je crois que c'est la réponse la plus correcte. Cela vaut la peine d’ajouter que vous exécutez: man montre plus d'options pour le réglage joli, transitoire, statique, etc.
mercredi
Je pense qu'il ne suffit pas d'être persistant au redémarrage. Vous devez également modifier le fichier / etc / sysconfig / network.
Pozinux
6

Outre les réponses déjà fournies pour CentOS 6.5,

CentOS 7 dispose également d'un outil d'interface utilisateur à base de texte permettant de modifier le nom d'hôte ( et d'autres paramètres réseau ), qui fait partie de Network Manager:

nmtui

démarre cette interface utilisateur:

entrez la description de l'image ici

qui a une option pour Set system hostname.

L’interface utilisateur textuelle de NetworkManager est installée par défaut dans l’image CentOS-7-x86_64-DVD-1511.iso, installation de base. Si le vôtre ne l’a pas, vous pouvez l’installer avec la commande suivante:

yum install NetworkManager-tui
quasoft
la source
2

Je devais faire cela pour un tas de machines. Voici un script python simple pour vous aider. Indiquez simplement le nom du nouvel hôte en tant que premier argument du script.

Par exemple, si vous nommez le script changeHost.py, exécutez-le en tant que

changeHost.py [NewHostName]

où NewHostName est le nom d'hôte souhaité.

Veillez également à exécuter ce script en tant que root.



#!/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)
Alex Begun
la source
2
Hmm, c'est un scénario moche. Je me demande si Puppet serait un meilleur outil pour gérer le nom d’hôte.
Red Cricket
4
Ce script est environ 3 fois plus long que nécessaire. Python est le mauvais outil pour le travail. Un script bash serait beaucoup plus court, plus lisible et plus facile à maintenir.
Mike S
2

Aucun redémarrage n'est requis pour changer de nom d'hôte sous CentOS 6.5.

La commande suivante informe le noyau du nouveau nom d'hôte:

# hostname new_hostname

La commande suivante pour que le nom d'hôte soit persistant après le redémarrage:

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

Si vous êtes sur le Centos 7.x. Insérez la commande suivante.

nmtui

Il aura l'option de définir le nom d'hôte du système . Appuyez sur Entrée dessus.

Ecrivez votre nom d'hôte.

Cliquez sur OK.

Maintenant, vérifiez avec la commande hostname .

Il aura votre nom d’hôte enregistré.

Hiren Parghi
la source
1

Malheureusement, je n'ai pas pu changer le nom d'hôte en entrant des données dans:

/ etc / sysconfig / network

et

fichier / etc / hosts

Cependant, j'ai pu changer le nom d'hôte en modifiant le fichier ci-dessous:

vi /etc/hostname
server01

Redémarrez et testez le nom d'hôte par:

hostname
Chandreshwar Prasad
la source
2
Notez le commentaire sur le PO indiquant qu'il /etc/hostnameexiste dans CentOS 7, mais pas dans CentOS 6
Fox