Si trabajas con servidores o tienes varios ordenadores en tu red doméstica, tener claro cómo renombrar el host en Linux es casi obligatorio. Un nombre de equipo genérico como localhost puede servir al principio, pero en cuanto gestionas varias máquinas empieza el caos: duplicados, confusiones al conectarte por SSH y problemas para identificar qué es qué.
En las distribuciones modernas y también en sistemas algo más antiguos existen varios métodos para cambiar el hostname, tanto de forma permanente como temporal y sin reiniciar. En las siguientes secciones vas a ver paso a paso cómo hacerlo con hostnamectl, con herramientas de texto como nmtui, modificando archivos de configuración clásicos o incluso tirando de una simple orden hostname, además de algún detalle específico para CentOS, Debian, Ubuntu, RHEL y derivados.
Qué es el hostname en Linux y por qué deberías cambiarlo
En cualquier sistema Linux, el hostname (nombre de host) es el identificador con el que la máquina se presenta en la red. Puede ser un nombre sencillo como servidor o algo más elaborado tipo srv-web-01.empresa.local, pero siempre será la referencia principal para otros equipos y servicios.
Normalmente, durante la instalación de la distribución se asigna un nombre por defecto, en muchos casos localhost o un nombre genérico que no dice gran cosa. Si tienes varios dispositivos con el mismo hostname en la misma red puedes encontrarte con conflictos de resolución de nombres, servicios que no responden donde esperas o simplemente un lío monumental al conectar por SSH o gestionar logs.
En entornos de producción, es habitual que cada máquina tenga un nombre coherente con su función y su ubicación (por ejemplo, LINUX-SYSADMIT-01, db01, mail-srv, etc.). Esto facilita la administración, la monitorización y la resolución de incidencias, y además evita depender únicamente de las direcciones IP, que pueden cambiar con más facilidad.
Conviene entender también que un hostname suele estar asociado a una dirección IP concreta. En redes locales esto se hace a menudo mediante el archivo /etc/hosts, y en redes más grandes o en Internet, mediante DNS. Por eso, cuando cambias el nombre de equipo, es buena idea revisar cualquier referencia en el sistema y en la red que pueda seguir apuntando al nombre antiguo.
Comprobar el hostname actual en Linux
Antes de cambiar nada, es recomendable ver qué nombre de host tiene ahora mismo la máquina. En Linux hay varias formas de consultarlo, y todas son muy rápidas.
La opción más directa es usar el comando hostname en la terminal:
hostname
La salida de este comando muestra simplemente el nombre de host actual, por ejemplo:
linuxshelltips
Si quieres un poco más de información del sistema, especialmente en distros basadas en systemd, puedes tirar de hostnamectl. Es una utilidad de línea de comandos que muestra datos del equipo y permite cambiar el nombre de host:
hostnamectl
La salida incluye campos como Static hostname, sistema operativo, versión de kernel, tipo de máquina virtual, arquitectura, etc. El dato clave aquí es el Static hostname, que es el nombre definido de forma persistente para el sistema.
Si quieres ver información más “baja nivel”, también puedes consultar algunos ficheros del sistema. El archivo /proc/sys/kernel/hostname refleja el nombre de host que el kernel está utilizando en ese momento:
cat /proc/sys/kernel/hostname
Y, por supuesto, en muchas distribuciones el fichero /etc/hostname almacena el nombre de host configurado de manera permanente. Puedes verlo con:
cat /etc/hostname
Cambiar el hostname en Linux de forma permanente con hostnamectl
En la mayoría de distribuciones modernas (como Ubuntu 16.04 o superior, Debian recientes, RHEL 7+, CentOS 7+ y derivados) el sistema de inicio es systemd, y con él llega la herramienta hostnamectl, que es la forma recomendada de renombrar el host en Linux de manera definitiva.
Lo primero es asegurarte de que tu sistema utiliza systemd. En distros actuales viene de serie, pero si trabajas con algo más antiguo podrías necesitar instalarlo o usar métodos alternativos. En sistemas basados en Debian puedes instalarlo (si no estuviera) con:
apt-get install systemd
Para ver el nombre de host actual usando hostnamectl, ejecuta:
hostnamectl
Verás algo parecido a esto (ejemplo típico en un VPS Ubuntu):
Static hostname: hostinger
Icon name: computer-vm
Chassis: vm
Machine ID: 45598cbdb6ee462e8696166b520fe788
Boot ID: 99526e56aeea45c2a0f3b2ffaaffe9d9
Virtualization: openvz
Operating System: Ubuntu 22.04.3 LTS
Kernel: Linux 5.4.0
Architecture: x86-64
Para establecer un nuevo nombre de host permanente, utiliza la sintaxis:
hostnamectl set-hostname NUEVO_HOSTNAME
Por ejemplo, si quieres llamar a tu equipo LINUX-SYSADMIT-01, harías:
hostnamectl set-hostname LINUX-SYSADMIT-01
Este comando no suele mostrar nada en pantalla si se ejecuta correctamente. Para verificar que el cambio se ha aplicado, basta con volver a lanzar:
hostnamectl
y comprobar que el campo Static hostname ha pasado a tener tu nuevo nombre. También puedes usar simplemente:
hostname
para verificar que el sistema responde ya con el hostname actualizado. Con este método no necesitas reiniciar en la mayoría de casos, ya que systemd se encarga de propagar el cambio.
Renombrar el host editando los archivos de configuración clásicos
Además de las herramientas específicas de systemd, en prácticamente cualquier distribución puedes modificar el hostname tocando directamente los archivos de configuración. Este método funciona incluso en sistemas más antiguos y te da un control muy fino sobre lo que cambias.
El primer fichero a revisar es /etc/hostname, donde normalmente aparece una sola línea con el nombre de equipo actual. Para editarlo, puedes usar vi, vim, nano o tu editor preferido. Por ejemplo:
sudo vim /etc/hostname
Dentro del archivo, sustituye el nombre actual por el nuevo hostname que quieras usar, por ejemplo:
hostinger
Guarda los cambios y sal del editor. Con esto ya has modificado la configuración base, pero quedan un par de pasos clave para que el cambio sea coherente en todo el sistema.
El siguiente archivo a actualizar es /etc/hosts, que se utiliza para resolver nombres de host a direcciones IP de forma local. Ábrelo con tu editor habitual:
sudo vim /etc/hosts
Dentro de este fichero suele haber una línea similar a:
127.0.0.1 localhost antiguo-hostname
o algo equivalente. Debes sustituir el nombre anterior por el nuevo, por ejemplo:
127.0.0.1 hostinger
En entornos donde se trabaja con nombres de dominio completos (FQDN), puedes ver entradas del estilo:
192.168.0.1 engelausmetall.engel.com engelausmetall
En este caso, si vas a cambiar el hostname, tendrás que ajustar la parte del nombre y, si aplica, el FQDN para mantener la coherencia con la red y los servicios que empleen ese nombre.
En muchas configuraciones más antiguas basadas en System V init, especialmente en sistemas tipo Red Hat o derivados, también se emplea el archivo /etc/sysconfig/network para definir el nombre de host. Es en ese fichero donde verás una línea en la que se declara la variable HOSTNAME:
HOSTNAME=engelausmetall.engel.com
Si este archivo existe en tu sistema, edítalo con:
nano /etc/sysconfig/network
y modifica la variable HOSTNAME con el nuevo nombre. Este paso es importante para que el cambio sea persistente tras los reinicios, sobre todo en distribuciones más antiguas de la familia Red Hat.
Una vez actualizados /etc/hostname, /etc/hosts y, si procede, /etc/sysconfig/network, es habitual reiniciar ciertos servicios de red o el propio sistema. En muchos manuales se recomienda, por ejemplo, en sistemas clásicos:
/etc/init.d/hostname.sh start
o bien reiniciar el servicio de red:
service network restart
Tras esto, conviene cerrar la sesión de terminal y abrir una nueva, o incluso salir e iniciar sesión de nuevo en el entorno gráfico. Así comprobarás que el prompt de la consola y las aplicaciones ya muestran el nombre de host actualizado.
Configurar el hostname en Linux con nmtui (NetworkManager TUI)
En muchas distribuciones basadas en Red Hat, como RHEL y CentOS, además de herramientas de línea de comandos puras, se incluye una interfaz de texto para NetworkManager llamada nmtui (Network Manager Text User Interface). Esta utilidad te permite configurar conexiones de red y también ajustar el hostname del sistema desde una especie de menú en modo texto.
Si no la tienes instalada, puedes añadirla en sistemas que usen yum con el paquete NetworkManager-tui:
sudo yum install NetworkManager-tui
Cuando el instalador liste las dependencias y pregunte si quieres continuar, responde con y y pulsa Intro. Al finalizar verás un mensaje del tipo Complete!, señal de que el paquete se ha instalado correctamente.
Antes de usar nmtui, asegúrate de que el servicio NetworkManager está activo. Puedes comprobarlo con:
service NetworkManager status
Si el servicio no está en ejecución, inícialo con:
service NetworkManager start
Ahora ya puedes lanzar la interfaz en modo texto escribiendo:
sudo nmtui
En la pantalla principal de la herramienta verás varias opciones, entre ellas Set system hostname. Muévete con las flechas del teclado hasta esa opción, pulsa Intro y accederás a un cuadro donde puedes introducir el nuevo nombre de host que quieres asignar a tu sistema.
Escribe el nuevo hostname, selecciona Aceptar (o OK) y confirma los cambios. Una vez salgas de nmtui, el sistema aplicará el nuevo nombre. Puedes comprobarlo de nuevo con:
hostname
o, si tu distribución utiliza systemd, con:
hostnamectl
Uso de cloud-init y preservación del hostname tras el reinicio
En muchas imágenes de VPS y servidores en la nube entra en juego cloud-init, una herramienta que se encarga de configurar el sistema en su primer arranque (y a veces en posteriores) basándose en plantillas del proveedor. Esto incluye, entre otros aspectos, el nombre de host.
Si cambias el hostname a mano en un servidor gestionado por cloud-init pero no ajustas su configuración, es posible que tras reiniciar se vuelva a aplicar el nombre de host original que trae la plantilla, perdiendo tus cambios.
Para evitarlo, edita el archivo de configuración principal de cloud-init, normalmente /etc/cloud/cloud.cfg. Puedes hacerlo con:
sudo vim /etc/cloud/cloud.cfg
Dentro de este fichero, busca la directiva preserve_hostname. Si está configurada como false o no aparece, añade o modifica la línea para que quede así:
preserve_hostname: true
Esta opción indica a cloud-init que respete el nombre de host que tenga actualmente el sistema y no lo sobreescriba en posteriores arranques. Tras guardar el archivo, reinicia el servidor para comprobar que el hostname se mantiene:
sudo reboot
Una vez haya arrancado de nuevo, ejecuta:
hostname
y verifica que el nombre sigue siendo el que configuraste. Si tu sistema no utiliza cloud-init o el archivo /etc/cloud/cloud.cfg no existe, simplemente puedes ignorar estos pasos.
Cambiar el hostname en Linux sin reiniciar el sistema
Hay ocasiones en las que solo necesitas cambiar el nombre de host temporalmente, por ejemplo, para hacer pruebas concretas o realizar alguna tarea puntual. En esos casos, puedes hacerlo directamente con el comando hostname, sabiendo que el cambio no será persistente tras un reinicio.
La sintaxis básica del comando para asignar un nuevo nombre es:
hostname NUEVO_HOSTNAME
Por ejemplo, si quieres poner el equipo con el nombre hostinger de forma provisional, ejecutarías:
hostname hostinger
Este cambio se aplica de inmediato para la sesión actual del sistema. Para comprobar que ha surtido efecto, puedes volver a lanzar:
hostname
y verás el nuevo nombre de host. Eso sí, en cuanto reinicies la máquina, el sistema volverá al hostname permanente configurado en los archivos de configuración o mediante hostnamectl, así que no sustituyas con esto los pasos de configuración persistente si necesitas que el cambio sea definitivo.
Consideraciones adicionales y buenas prácticas al renombrar el host en Linux
Renombrar el host no es solo cambiar una cadena en un par de archivos; conviene revisar algunos detalles para que todo funcione sin sobresaltos, sobre todo en servidores de producción o en entornos corporativos.
Una primera recomendación es elegir un hostname claro y consistente con tu esquema de nombres. En muchas empresas se siguen patrones como ROL-UBICACION-NUMERO (por ejemplo, WEB-MAD-01, DB-BCN-02), lo que facilita saber qué hace cada servidor solo con ver su nombre.
También es importante comprobar si el nombre de host aparece en scripts, servicios, certificados o reglas de firewall. Por ejemplo, algunos servicios pueden estar configurados para escuchar en un hostname concreto o generar logs donde el nombre del equipo forma parte de rutas y ficheros. Tras el cambio, conviene hacer un repaso rápido de estos puntos.
Otro aspecto a tener en cuenta es la posible relación entre el hostname y la resolución DNS. Si tu máquina está registrada en un servidor DNS con un nombre determinado, al cambiarle el hostname local tendrás que actualizar también el registro DNS correspondiente para que coincidan el nombre lógico y la IP con la que se resuelve.
Por último, recuerda revisar siempre el fichero /etc/hosts para asegurarte de que cualquier referencia al nombre antiguo se ha actualizado correctamente. Es frecuente olvidar esta parte y luego encontrarse con que algunos servicios realizan resoluciones de nombres inconsistentes porque todavía hay líneas antiguas en ese archivo local.


