DEV Community

John  Ajera
John Ajera

Posted on

How to Set the Hostname on a Linux System

How to Set the Hostname on a Linux System

When setting up a Linux machine, one of the first things you might want to do is assign a proper hostname. A hostname helps identify your machine within a network or even locally, making it easier to manage and troubleshoot. In this guide, I'll show you how to set the hostname on Linux using the hostnamectl command.


What Is a Hostname?

A hostname is a unique identifier for a machine on a network. Think of it as the "name" of your system. Hostnames are typically used for:

  • Network communication
  • System administration
  • Identifying machines in logs

There are three types of hostnames:

  1. Static Hostname: The main, persistent hostname of your system.
  2. Pretty Hostname: A descriptive name that can include spaces or special characters (e.g., "My Cool Server").
  3. Transient Hostname: A temporary hostname used for the current session (resets after a reboot).

How to Set the Hostname

The easiest way to set a hostname on a Linux system is by using the hostnamectl command. This tool is part of systemd and allows you to manage the hostname easily.

Step 1: Check the Current Hostname

First, check the current hostname by running:

hostnamectl
Enter fullscreen mode Exit fullscreen mode

Example output:

   Static hostname: (unset)
   Transient hostname: localhost
         Icon name: computer-server
           Chassis: server
        Machine ID: 2c9a10b57b9248e7bdf1c78b0f9ea8e1
           Boot ID: 8e4bb01e03ef4147bbeb2c5bc74f8a6f
  Operating System: Linux
            Kernel: Linux 6.2.0-43-generic
      Architecture: x86-64
Enter fullscreen mode Exit fullscreen mode

Step 2: Set a New Static Hostname

To set a permanent static hostname, run:

sudo hostnamectl set-hostname workstation06
Enter fullscreen mode Exit fullscreen mode

This will update the static hostname in the system configuration files.


Step 3: Set a Pretty Hostname (Optional)

If you want a more descriptive or user-friendly hostname for display purposes, use:

sudo hostnamectl set-hostname "My Awesome Server" --pretty
Enter fullscreen mode Exit fullscreen mode

The pretty hostname is purely cosmetic and won’t affect network communication.


Step 4: Set a Transient Hostname (Optional)

To set a hostname that only lasts for the current session:

sudo hostnamectl set-hostname temporary-hostname --transient
Enter fullscreen mode Exit fullscreen mode

Transient hostnames are often used for testing or debugging.


Step 5: Verify the New Hostname

After setting the hostname, confirm the changes:

hostnamectl
Enter fullscreen mode Exit fullscreen mode

Example output:

   Static hostname: workstation06
   Pretty hostname: My Awesome Server
         Icon name: computer-server
           Chassis: server
        Machine ID: 2c9a10b57b9248e7bdf1c78b0f9ea8e1
           Boot ID: 8e4bb01e03ef4147bbeb2c5bc74f8a6f
  Operating System: Linux
            Kernel: Linux 6.2.0-43-generic
      Architecture: x86-64
Enter fullscreen mode Exit fullscreen mode

Update the Hosts File

Changing the hostname doesn’t automatically update the /etc/hosts file. Edit it manually to avoid issues with local name resolution:

sudo nano /etc/hosts
Enter fullscreen mode Exit fullscreen mode

Make sure it includes an entry like this:

127.0.1.1   workstation06
Enter fullscreen mode Exit fullscreen mode

Save and close the file.


Additional Tips

  • Use a Valid Hostname: Hostnames should only contain alphanumeric characters, hyphens (-), and dots (.). Avoid starting or ending with a hyphen.
  • Restart Networking Services: Some services may require a restart to recognize the new hostname:
  sudo systemctl restart networking
Enter fullscreen mode Exit fullscreen mode
  • Hostname Limitations: Avoid using the same hostname for multiple machines in the same network to prevent conflicts.

Conclusion

Setting a hostname on Linux is quick and straightforward with the hostnamectl command. Whether you’re configuring a server, a development machine, or just experimenting, this guide covers everything you need to know to manage hostnames effectively.

Feel free to comment below if you have questions or tips about managing hostnames in Linux!


What do you think? Is this guide helpful for your hostname-related tasks? Let me know! 😊

Top comments (0)