Change HostName in CentOS 7 / RHEL 7

ADVERTISEMENT

CentOS 7

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.

ADVERTISEMENT
Article will continue after the ad

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.

nmtui -Select Set HostName
nmtui -Select Set HostName

Set the host name.

nmtui - Change HostName 2
nmtui – Change HostName 2

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.

ADVERTISEMENT

POSTS YOU MAY LIKE -:)

Share This Post

  • tester

    For me all I needed was:

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

    and this has taken care of setting the hostname statically and on the fly.

    Thank you.

  • Zar Tejano

    Thanks for the info

  • ajftek

    I set the hostname but upon reboot the systemd-hostnamed changes it back to the original hostname.

    I have used hostname, /etc/hostname , /etc/hosts, AND hostnamectl, but none of them are persistent upon reboot.

    Here is /var/log/messages , where it changes the hostname

    Oct 17 16:55:26 sim systemd[1]: No hostname configured.
    Oct 17 16:55:26 sim systemd[1]: Set hostname to .
    Oct 17 16:55:29 sim systemd: Set hostname to .
    Oct 17 16:55:30 sim NetworkManager[372]: hostname ‘ip-172-31-18-83′
    Oct 17 16:55:32 sim dbus-daemon: dbus[386]: [system] Activating via systemd: service name=’org.freedesktop.hostname1′ unit=’dbus-org.freedesktop.hostname1.service’
    Oct 17 16:55:32 sim dbus[386]: [system] Activating via systemd: service name=’org.freedesktop.hostname1′ unit=’dbus-org.freedesktop.hostname1.service’
    Oct 17 16:55:32 sim systemd: Starting Hostname Service…
    Oct 17 16:55:32 sim dbus-daemon: dbus[386]: [system] Successfully activated service ‘org.freedesktop.hostname1’
    Oct 17 16:55:32 sim dbus[386]: [system] Successfully activated service ‘org.freedesktop.hostname1’
    Oct 17 16:55:32 sim systemd: Started Hostname Service.
    Oct 17 16:55:32 sim systemd-hostnamed: Changed static host name to ‘ip-172-31-18-83.ec2.internal’
    Oct 17 16:55:32 sim systemd-hostnamed: Changed host name to ‘ip-172-31-18-83.ec2.internal’
    [root@ip-172-31-18-83 ec2-user]# date
    Fri Oct 17 16:57:09 EDT 2014
    [root@ip-172-31-18-83 ec2-user]#

    Any suggestions?

    • Aleksandar Kostadinov

      Possibly issue is cloud-init.
      Edit out hostname related modules from /etc/cloud/cloud.cfg

  • Pablo

    Hello,
    great information, thank you so much for sharing!

    Another possible option:

    Modify /etc/hostname
    systemctl restart systemd-hostnamed

    Close and open a session.

    Then, a server reboot isn’t needed 🙂

    Best regards,
    Pablo

  • sagar Dalvi

    Thank you Sir

  • Xaotay

    Can you show me how to change ip address in centos 7?
    Thanks!

    • Brandon Johnson

      ifconfig ‘interface name’ ‘ip address’
      like such:
      ifconfig vnet0 192.168.1.101

    • jose

      nmtui edit “interface name”
      like such:
      nmtui edit vnet0

  • Janus Rokkjær

    Thanks great article missed the hostname set-hostname hostname.tld from every other article i read about installing centos 🙂

  • mynicepc

    so what difference would it make if I use this command directly from the kernel?
    sysctl kernel.hostname=NEW_HOSTNAME

Shares