¿Cómo cambiar el nombre de host en CentOS 6.5?


48

Parece que no puedo cambiar el nombre de host en mi host CentOS 6.5. Estoy siguiendo las instrucciones que encontré aquí: http://www.rackspace.com/knowledge_center/article/centos-hostname-change

Puse mi /etc/hostsgusto así que ...

    [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

... entonces hago mi /etc/sysconfig/networkarchivo así ...

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

... entonces corro hostnameasí ...

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

... y luego corro bash y todo parece estar bien ...

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

... pero cuando reinicio mi red vuelve el antiguo nombre de host:

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

... No puedo resolverlo. Qué estoy haciendo mal aquí.


1
¿Has editado tu /etc/hostnamearchivo?
Anthon

No hay un /etc/hostnamearchivo [root@smp-mig-dev-006 ~]# ls -l /etc/hostnamesalidasls: cannot access /etc/hostname: No such file or directory
Red Cricket

Podría ser una cosa de Centos. ¿Qué le dice su página de manual sobre la permanencia de hostname somenameque tiene un efecto duradero? (si no, ¿por qué haces esa llamada?)
Anthon

3
Creo que /etc/hostnameestá en CentOS 7 pero no en CentOS 6.
Pavel Šimerda

Me doy cuenta de que esto es viejo, pero huelo a NetworkManager en el trabajo, ya sea eso o puede tener HOSTNAME = configurado en otro archivo que no sea network (es decir, en scripts de red). El archivo / etc / hostname no se usa en CentOS 6 (es algo del sistema; eso significa CentOS 7 y versiones posteriores). Verifique el contenido del archivo / etc / sysconfig / network-scripts / ifcfg-eth0; ¿Que hay en ello? Nota: Si observa el script if_post de Redhat en scripts de red /, verá que set_hostname simplemente ejecuta "hostname $ HOSTNAME", donde HOSTNAME es una variable de shell establecida en el archivo de red o en el archivo ifcfg-eth0.
Mike S

Respuestas:


67

Para cambiar el nombre de host de forma permanente, debe cambiarlo en dos lugares:

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

y: una buena idea si tiene alguna aplicación que necesite resolver la IP del nombre de host)

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

y entonces

 rebooting the system

77
Al final de estos dos cambios agregar hostname newHostName, no es necesario reiniciar, creo
Edakos

44
No parece que sea necesario editar el archivo / etc / hosts
jgritty

2
La respuesta ha sido aceptada, pero primero, el /etc/hostscambio solo está ahí para hacer que el nombre de host sea resoluble, no para cambiarlo, y se /etc/sysconfig/networkve igual que en OP. ¿Alguien puede explicar qué exactamente OP necesitó cambiar para que funcione?
Pavel Šimerda

3
Creo que una respuesta correcta debería funcionar como respuesta a la pregunta. La repetición de datos de la pregunta es buena siempre que la respuesta indique que el OP la configuró correctamente pero no realizó las acciones necesarias para cargar la nueva configuración (por ejemplo, reiniciar).
Pavel Šimerda

2
No es necesario reiniciar. Verifique strace -f nombre de host bla. El núcleo recibe el mensaje de inmediato. / etc / hosts no afecta el nombre de host del host, en CentOS 6.5 (y 7) al menos. Y esta respuesta es incorrecta porque le falta el comando hostname, que es lo que informa al núcleo del nombre de su host.
Mike S

65

Puede encontrar una solución para CentOS 7 aquí :

hostnamectl set-hostname <new hostname>

3
"hostnamectl" fue la única solución que funcionó para mí en CentOS Linux versión 7.2.1511
AJN

..y reiniciar, en mi caso.
WesternGun

No creo que necesites reiniciar, solo reiniciar debería funcionar
FearlessHyena

55
La pregunta es sobre CentOS 6.5. CentOS 7 es una bestia completamente diferente y esta respuesta no pertenece aquí.
Harald

15

Puede cambiar su nombre de host con un solo comando.

  • Comando: hostnamemuestra el nombre de host anterior
  • Comando: hostname <new name>-esto establece un nuevo nombre de host

Ejemplo

$ hostname mynewhost

Para persistir el nuevo nombre de host durante el reinicio

edite el archivo / etc / sysconfig / network para que se vea a continuación

NETWORKING=yes
HOSTNAME=myhostanme

Para ayuda en video


Creo que esta es la respuesta más correcta. Vale la pena agregar esa ejecución: man hostname; espectáculos más opciones para configurar bonita, transitoria, etc. estática
ekerner

Creo que no es suficiente ser persistente en el reinicio. También debe modificar el archivo / etc / sysconfig / network.
Pozinux

6

Además de las respuestas ya proporcionadas para CentOS 6.5,

CentOS 7 también tiene una herramienta de interfaz de usuario basada en texto para cambiar el nombre de host ( y otras configuraciones de red ), parte de Network Manager:

nmtui

inicia esta interfaz de usuario:

ingrese la descripción de la imagen aquí

que tiene una opción para Set system hostname.

La interfaz de usuario de texto de NetworkManager se instala de manera predeterminada en la imagen CentOS-7-x86_64-DVD-1511.iso, instalación básica. Si el suyo no lo tiene, puede instalarlo con el siguiente comando:

yum install NetworkManager-tui

2

Tuve que hacer esto por un montón de máquinas. Aquí hay un simple script de Python para ayudarte. Simplemente proporcione el nombre del nuevo host como primer argumento para el script.

por ejemplo: si nombra el script changeHost.py, ejecútelo como

changeHost.py [NewHostName]

donde NewHostName es su nombre de host deseado.

También asegúrese de ejecutar este script como 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)

2
Hmm eso es un guión feo. Me pregunto si Puppet sería una mejor herramienta para tratar con el nombre de host.
Red Cricket


44
Este script es aproximadamente 3 veces más largo de lo necesario. Python es la herramienta incorrecta para el trabajo. Un script bash sería mucho más corto, más legible y más fácil de mantener.
Mike S

2

No es necesario reiniciar para cambiar el nombre de host en CentOS 6.5.

El siguiente comando informa al núcleo del nuevo nombre de host:

# hostname new_hostname

El siguiente comando para que el nombre de host sea persistente durante el reinicio:

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

2

Si estás en el Centos 7.x. Inserte el siguiente comando.

nmtui

Tendrá una opción para establecer el nombre de host del sistema . Presione Entrar en él.

Escribe tu nombre de host.

Haga clic en Aceptar.

Ahora, verifique con el comando hostname .

Tendrá su nombre de host guardado.


1

Lamentablemente no pude cambiar el nombre de host haciendo entradas en:

/ etc / sysconfig / network

y

archivo / etc / hosts

Sin embargo, pude cambiar el nombre de host editando el archivo a continuación:

vi /etc/hostname
server01

Reinicie y pruebe el nombre de host por:

hostname

2
Tenga en cuenta el comentario sobre el OP que indica que /etc/hostnameexiste en CentOS 7, pero no en CentOS 6
Fox
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.