--- title: "Change the hostname of a Linux server" slug: "change-the-hostname-of-a-linux-server" updated: 2026-07-22T23:51:31Z published: 2026-07-22T23:51:31Z canonical: "docs.serversaustralia.com.au/change-the-hostname-of-a-linux-server" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.serversaustralia.com.au/llms.txt > Use this file to discover all available pages before exploring further. # Change the hostname of a Linux server > [!NOTE] > cPanel servers > > In the event that you are wanting to change the hostname for a cPanel server, you should instead follow our cPanel guide: [Change the Hostname of a cPanel Server](/v1/docs/change-the-hostname-on-a-cpanel-server#overview) > [!WARNING] > Requirements: > > The new hostname for the server: > > - Must be 1-63 characters long for each segment (separated by periods), up to a total length of 253 characters. > - Be composed of ASCII(7) characters, which includes alphabetic characters (a-z), numerals (0-9), periods (.), and the hyphen (-). > - A hostname may not start or end with a hyphen (-). > - Periods should only be used to separate domain labels. ## Temporary Changes: Temporary changes of the current active hostname can be done through the **hostname** command within Linux. 1. To see your current active hostname type **hostname**: [test@testvm ~]# **hostname** ```bash examplevm.servercontrol.com.au ``` 2. To change your current active hostname to something else, enter it as **hostname ** for example: [test@testvm ~]# **hostname examplevm.servercontrol.com.au** [test@testvm ~]# **hostname** ```bash examplevm.servercontrol.com.au ``` > [!NOTE] > Persistence > > Whilst **hostname** works for a temporary change for testing purposes, this is not persistent across reboots, as the configurations files are not changed. To make it persistent, you will need to use hostnamectl, or edit the configuration files directly. On the example system being used, if I check **/etc/hostname** we can see that it is still set as **testvm.servercontrol.com.au** instead of what I set with **hostname**: > > > > [test@testvm ~]# **cat /etc/hostname** > > ```bash > testvm.servercontrol.com.au > ``` > > If I wanted to make this persistent on this AlmaLinux test server, I would use **hostnamectl**. ## Persistent Changes: ### Method 1: hostnamectl > [!NOTE] > Prerequisite > > **hostnamectl** interacts with **/etc/hostname** and is reliant on your Linux distribution being systemd based. > > > > You can check if your system has **hostnamectl** via **which**: > > [test@testvm]# **which hostnamectl** > > ```bash > /usr/bin/hostnamectl > ``` **hostnamectl** will change your hostname immediately, as well as changing the recorded hostname within **/etc/hostname**. 1. Check your current set hostname with **hostname**: [test@testvm ~]# **hostname** ```bash examplevm.servercontrol.com.au ``` 2. Set a new hostname via **hostnamectl**: [test@testvm ~]# **hostnamectl set-hostname examplevm.servercontrol.com.au** 3. Using **hostname** we can make sure the change is currently active. [test@testvm ~]# **hostname** ```bash examplevm.servercontrol.com.au ``` 4. By checking our configuration file at **/etc/hostname** we can make sure that the change will be persistent across reboots. [test@testvm ~]# **cat /etc/hostname** ```bash examplevm.servercontrol.com.au ``` ### Method 2: Text editor On non-systemd distributions you will need to edit the text file directly. There are a number of locations that it could be stored. For Red-hat systems using sysv, this historically was **/etc/sysconfig/network**, but has since changed to be **/etc/hostname** to align with systemd. > [!NOTE] > Distributions > > In the event that your hostname isn’t located in either **/etc/hostname** or **/etc/sysconfig/network**, you will need to look up the location of your hostname configuration file for your OS distribution. I have put some examples below of distributions and their typical hostname file: > > - Debian: **/etc/hostname** > - Ubuntu: **/etc/hostname** > - AlmaLinux: **/etc/hostname** > - Rocky Linux: **/etc/hostname** > - CentOS 7/8/9: **/etc/hostname** > - Legacy CentOS 6 and prior: **/etc/sysconfig/network** > - Legacy RHEL 6 and prior: **/etc/sysconfig/network** > - OpenSUSE: **/etc/hostname** > - Fedora Server: **/etc/hostname** > - Alpine Linux: **/etc/hostname** **/etc/hostname** only contains the hostname, which is easy to edit: [test@testvm ~]# **cat /etc/hostname** ```bash examplevm.servercontrol.com.au ``` But within **/etc/sysconfig/network**, it is stored as as a variable, and not the only one present: [test@testvm ~]# **cat /etc/sysconfig/network** ```bash NETWORKING=yes NETWORKING_IPV6=yes IPV6_AUTOCONF=no HOSTNAME=examplevm.servercontrol.com.au DOMAINNAME=servercontrol.com.au ``` After this has been changed and saved within the relevant file for your distribution, you will need to use **hostname** as described in the [Temporary Changes](/v1/docs/change-the-hostname-of-a-linux-server#temporary-changes) section to set it within the current active config, as this was set during the last system boot before the change was made. Once this has been completed, congratulations! You have changed the hostname for a Linux Server!