How to Set or Change Hostname in CentOS 7 / RHEL 7

12

CentOS 7

After installing the CentOS 7 on my server, I tried to change hostname by modifying the /etc/sysconfig/network, but the change did not take an effect of the modification. Even after multiple reboots of the server, the hostname remained localhost.localdomain.

I found that the procedure to change the hostname in CentOS 7 is now totally different from the previous version. This guide will help you to setup the hostname on CentOS 7 / RHEL 7.

Hostname Class

Static – The static hostname is traditional host which can be chosen by the user and is stored in /etc/hostname file.

Transient – The transient hostname is maintained by the kernel and can be changed by DHCP and mDNS.

Pretty – It is a free-form UTF -8 hostnames for the presentation to the user.

Hostname can be,

  • 64 character in a length
  • Recommend to have FQDN
  • Consists of a-z, A-Z, 0-9, “-”, “_” and “.” only

Change Hostname in CentOS 7

Before changing the hostname, let’s check the current hostname.

[root@localhost ~]# hostname
localhost.localdomain

1. hostnamectl

hostnamectl is used to change the hostname, with this tool we can change all the three class of hostname.

Here we look only static hostname. Check the current hostname.

[root@localhost ~]# hostnamectl status

Output:

Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: 565ea8b749544aca9d5563308f9e4bc2
Boot ID: 5c979d9b5f754df8b75a4e3aeabf2bad
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-123.el7.x86_64
Architecture: x86_64

Set the hostname.

[root@localhost ~]# hostnamectl set-hostname client.itzgeek.com

Check the hostname again (Close the session and open new session using putty or console)

[root@client ~]# hostnamectl status

Output:

Static hostname: client.itzgeek.com
Icon name: computer-vm
Chassis: vm
Machine ID: 565ea8b749544aca9d5563308f9e4bc2
Boot ID: 5c979d9b5f754df8b75a4e3aeabf2bad
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-123.el7.x86_64
Architecture: x86_64

If you use this command, you do not require to notify the change of the host name. Close the current session and relaunch the terminal.

2. nmtui tool

NetworkManager tool is used to set the static hostname in /etc/hostname file.

nmtui -Select Set HostName
nmtui -Select Set HostName

Set the hostname.

nmtui - Change HostName 2
nmtui – Change HostName 2

Restart the hostnamed to force the hostnamectl to notice the change of the static hostname.

[root@client ~]# systemctl restart systemd-hostnamed

You can verify the change in the hostname.

[root@server ~]# hostname
server.itzgeek.com
[root@server ~]# cat /etc/hostname
server.itzgeek.com
[root@server ~]# cat /etc/sysconfig/network
# Created by anaconda
HOSTNAME=server.itzgeek.com

3. nmcli tool

It can be used to query and set up the static hostname in /etc/hostname file.

Check the hostname.

[root@server ~]# nmcli general hostname
server.itzgeek.com

Change the hostname.

[root@server ~]# nmcli general hostname client.itzgeek.com

Restart the hostnamed to force the hostnamectl to notice the change of the static hostname.

[root@server ~]# systemctl restart systemd-hostnamed

4. Edit /etc/hostname

This is simple but requires a reboot of the server to take effect.

Note: Use the hostnamectl to change the hostname, which is far better than other commands and does not require to update the kernel about the change in the hostname.

You might also like