En sistemas Debian con systemd se debe cambiar el nombre de host empleando el utilitario hostnamectl en lugar de editar directamente el archivo /etc/hostname como se hacía anteriormente con SysVInit.

Cuando se ejecuta sin parámetros, este utilitario muestra el nombre de host del sistema junto con información adicional como el ID de máquina, sistema operativo, kernel, arquitectura y más:

root@ip-10-0-0-151:~# hostnamectl
   Static hostname: ip-10-0-0-151
         Icon name: computer-vm
           Chassis: vm
        Machine ID: abc123
           Boot ID: def456
    Virtualization: xen
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.0-12-cloud-amd64
      Architecture: x86-64

En ese ejemplo, luego de crear una nueva instancia EC2 en AWS a partir de una AMI Debian, se observa que el nombre de host del sistema es "ip-10-0-0-151". Se arma con la dirección IP privada cambiando puntos por guiones y anteponiendo el prefijo "ip-".

Uno de los primeros pasos luego de crear una nueva instancia consiste en cambiar el nombre de host.

Para cambiar el nombre de host del sistema con hostnamectl se debe emplear el subcomando "set-hostname" con el nombre de host como parámetro:

root@ip-10-0-0-151:~# hostnamectl set-hostname www-dev.linuxito.com

Luego verificar:

root@ip-10-0-0-151:~# hostnamectl
   Static hostname: www-dev.linuxito.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: abc123
           Boot ID: def456
    Virtualization: xen
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.0-12-cloud-amd64
      Architecture: x86-64

Este comando actualiza automáticamente el contenido del archivo /etc/hostname:

root@ip-10-0-0-151:~# cat /etc/hostname 
www-dev.linuxito.com

De esta forma, en la siguiente sesión SSH se verá el nombre de host "www-dev" en el prompt de Bash en lugar del actual sin necesidad de reiniciar el sistema.

Compartí este artículo