≡ Menu

How to Change HostName and IP-Address in CentOS / RedHat Linux

You can use any one of the following methods to change the hostname and/or ip-address on RedHat related distributions.

If you want to change only the hostname you can either do it from command line, or from GUI as explained below.

To change the ip-address along with the hostname, follow the steps shown below.

I. Change HostName From Command Line

1. Use hostname command to Change Hostname

In this example, we’ll change the hostname from dev-server to prod-server.

hostname command by default will display the current hostname as shown below:

# hostname
dev-server

The following will change the hostname to prod-server.

# hostname prod-server

Once the hostname is changed, verify that it has changed the hostname successfully. As you see below, it has changed the hostname to prod-server

# hostname
prod-server

2. Modify the /etc/hosts file

If you have entries in the /etc/hosts file with the old hostname, you should modify it.

For example, the entry for 127.0.0.1 line in the /etc/hosts file will still show the old hostname. In this example, it shows as dev-server.

$ cat /etc/hosts
127.0.0.1  dev-server localhost.localdomain localhost

Modify this file, and set the new hostname here. For example, change dev-server to prod-server as shown below.

$ cat /etc/hosts
127.0.0.1  prod-server localhost.localdomain localhost

3. Modify the /etc/sysconfig/network file

The /etc/sysconfig/network file also has an entry for HOSTNAME. Change the value here as shown below.

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=prod-server

4. Restart the Network

Restart the network service, if you want any other services that are using the hostname to pickup the changes.

# service network restart
Shutting down interface eth0:        [  OK  ]
Shutting down loopback interface:   [  OK  ]
Bringing up loopback interface:     [  OK  ]
Bringing up interface eth0:          [  OK  ]

If this is not a production system, you can also reboot the system to make sure the hostname is changed properly, and the system is picking it up properly during startup.

II. Change Hostname from UI

If you have desktop related utilities installed on your system, you can change the hostname from the GUI.

Execute system-config-network from the command line.

# system-config-network

This will display the “Network Configuration” GUI. Go to the “DNS” tab and change the hostname from here as shown below.

III. Change the IP-Address

1. Change ip-address Temporarily Using ifconfig

You can change the ip-address of the server using ifconfig command as we discussed earlier. For example, the following changes the ip-address of the server on eth0 interface to 192.168.1.2

# ifconfig eth0 192.168.1.2

2. Change ip-address Permanently

Under the /etc/sysconfig/network-scripts directory, you’ll see file for every network interface on your system. For example, if your interface is “eth0”, you’ll see ifcfg-eth0 file under this directory.

Modify the ifcfg-eth0 file and change the IPADDR field accordingly as shown below to change the ip-address.

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO=none
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE="Ethernet"
UUID="11111-2222-3333-4444"
IPADDR=192.168.1.2
PREFIX=24
GATEWAY=192.168.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System em1"
HWADDR=DD:BB:DD:AA:11:55

3. Modify /etc/hosts file

If you’ve defined the ip-address in the /etc/hosts file, make sure to change those also. For example, if you have a FQDN that was pointing to the old ip-address in the /etc/hosts file, change it to the new ip-address. Depending on how you’ve configured your system, you might not have to do this step.

$ vi /etc/hosts
127.0.0.1               prod-server localhost.localdomain localhost
192.168.1.2             prod-server.mydomain.com

4. Restart the Network

Finally, restart the network service, for the system to pick-up the changes.

# service network restart
Shutting down interface eth0:        [  OK  ]
Shutting down loopback interface:   [  OK  ]
Bringing up loopback interface:     [  OK  ]
Bringing up interface eth0:          [  OK  ]

If this is not a production system, you can also reboot the system to make sure the hostname and ip-address is changed properly, and the system is picking it up properly during startup.

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

{ 9 comments… add one }

  • Sapan Shah October 16, 2013, 2:23 pm

    Will this work for VM also? I am looking to make my VM’s IP public. Is that possible using the above mechanism.

  • Jalal Hajigholamali October 16, 2013, 2:55 pm

    Hi,

    Simple but very useful material

  • Aram Iskenderian October 17, 2013, 4:49 am

    Please note that just changing the host name as described in 1 will not survive a reboot.
    That would change the host name only on that session.

    The other options are valid.

  • rinshad October 17, 2013, 10:54 am

    Nice Article ..

  • Manzoor November 5, 2013, 2:32 pm

    Good stuff. I noticed one spelling mistake…

    II. Change Hostname from UI –> I think it should be GUI. Can you please correct it?

  • Jay November 5, 2013, 2:38 pm

    Don’t forget that to ensure that the hostname is persistent against reboots that you will also have to change the
    hostname in the
    /etc/sysconfig/network file on RHEL/CENTOS systems.

  • Jamil January 29, 2014, 1:07 am

    Thanks dear, it help lot for me.

  • Mustafa March 2, 2014, 3:08 am

    Helpful material.

  • satish May 19, 2015, 2:01 am

    system-config-network is the best way to setup the hostname permanently, this would be ideal if you are you RHEL also you do not need any script in startup to save the changes permanently.

Leave a Comment