After installing the CentOS 7 on my server, i tried to change host name by modifying the /etc/sysconfig/network; it did not take an effect of the modification. Even after multiple reboot of server, the host name remains localhost.localdomain. The procedure to change the host name in CentOS 7 is now totally different from the previous version, this guide will help you to setup the host name on CentOS 7 / RHEL 7.
CentOS 7 supports three class of Host Names:
Static – The static host name is traditional host which can be chosen by the user and is stored in /etc/hostname file.
Transient – The transient host name is maintained by kernel and can be changed by DHCP and mDNS.
Pretty – It is a free form UTF -8 host name 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
How to Change:
Before changing the host name, lets check the current host name.
[root@localhost ~]# hostname localhost.localdomain |
1. nmtui tool:
NetworkManaget tool is used to set the static host name in /etc/hostname file.
Set the host name.
restart the hostnamed to force the hostnamectl to notice the change in static host name.
[root@localhost ~]# systemctl restart systemd-hostnamed |
You can verify the change in host name.
[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 |
2. hostnamectl:
hostnamectl is used to change the host name, with this tool we can change all the three class of host name; here we look only static host name.
Check the current host name.
[root@server ~]# hostnamectl status |
Static hostname: server.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 |
Set the hostname.
[root@server ~]# hostnamectl set-hostname client.itzgeek.com |
Check the host name again (Close the session and open new session using putty or console)
[root@client ~]# hostnamectl status |
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 in host name. Close the current session and re launch the terminal.
3. nmcli tool:
It can be used to query and setup the static host name in /etc/hostname file.
Check the hostname.
[root@client ~]# nmcli general hostname client.itzgeek.com |
Change the host name.
[root@client ~]# nmcli general hostname server.itzgeek.com |
restart the hostnamed to force the hostnamectl to notice the change in static host name.
[root@client ~]# systemctl restart systemd-hostnamed |
4. Edit /etc/hostname
This is the simple, but requires a reboot of server to take an effect.
Note: Use the hostnamectl to change the host name, which fair better than other commands and does not require to update the kernel about the change in host name.