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)