How to change your hostname in Linux
Your hostname is a vital piece of system information that you need to keep track of as a system administrator. Hostnames are the designations by which we separate systems into easily recognizable assets. This information is especially important to make a note of when working on a remotely managed system. I have experienced multiple instances of companies changing the hostnames or IPs of storage servers and then wondering why their data replication broke. There are many ways to change your hostname in Linux; however, in this article, I'll focus on changing your name as viewed by the network (specifically in Red Hat Enterprise Linux and Fedora).
A quick bit of background. Before the invention of DNS, your computer's hostname was managed through the HOSTS file located at
/etc/hosts. Anytime that a new computer was connected to your local network, all other computers on the network needed to add the new machine into the
/etc/hosts file in order to communicate over the network. As this method did not scale with the transition into the world wide web era, DNS was a clear way forward. With DNS configured, your systems are smart enough to translate unique IPs into hostnames and back again, ensuring that there is little confusion in web communications.
Modern Linux systems have three different types of hostnames configured. To minimize confusion, I list them here and provide basic information on each as well as a personal best practice:
- Transient hostname: How the network views your system.
- Static hostname: Set by the kernel.
- Pretty hostname: The user-defined hostname.
It is recommended to pick a pretty hostname that is unique and not easily confused with other systems. Allow the transient and static names to be variations on the pretty, and you will be good to go in most circumstances.
Working with hostnames
Now, let's look at how to view your current hostname. The most basic command used to see this information is
hostname -f. This command displays the system's fully qualified domain name (FQDN). To relate back to the three types of hostnames, this is your transient hostname. A better way, at least in terms of the information provided, is to use the
hostnamectl to view your transient hostname and other system information:
Before moving on from the
hostname command, I'll show you how to use it to change your transient hostname. Using
hostname <x> (where
x is the new hostname), you can change your network name quickly, but be careful. I once changed the hostname of a customer's server by accident while trying to view it. That was a small but painful error that I overlooked for several hours. You can see that process below:
It is also possible to use the
hostnamectl command to change your hostname. This command, in conjunction with the right flags, can be used to alter all three types of hostnames. As stated previously, for the purposes of this article, our focus is on the transient hostname. The command and its output look something like this:
The final method to look at is the
sysctl command. This command allows you to change the kernel parameter for your transient name without having to reboot the system. That method looks something like this:
Using GNOME, you can go to Settings -> Details to view and change the static and pretty hostnames. See below:
I hope that you found this information useful as a quick and easy way to manipulate your machine's network-visible hostname. Remember to always be careful when changing system hostnames, especially in enterprise environments, and to document changes as they are made.
Want to try out Red Hat Enterprise Linux? Download it now for free.