Linux hostname

From Ever changing code
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Debian based

In CentOS/Ubuntu and other distros you can control hostname using:

sudo hostnamectl set-hostname <new hostname>

In CentOS 7 it updates also /etc/hostname file that stores centrally the system's hostname

RPM based

In Redhat (RPM) based distros change the hostname permanently by editing:

$ vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=newHostName
# requires a reboot for eg. Amazon Linux

RHEL 7 or CentOS 7

# 1
sudo hostnamectl set-hostname -–static <new-name> # this command does not update /etc/hosts file 
# 2 on your RHEL 7 or CentOS 7 but not required for RHEL 7.4 and above
sudo vi /etc/cloud/cloud.cfg 
# 3 Add the following string to the bottom of the /etc/cloud/cloud.cfg file to be sure that the new 
sudo vi /etc/cloud/cloud.cfg
preserve_hostname: true
# reboot
hostname #verify that the hostname change persisted

Amazon Linux AMI

# change to public DNS name
sudo vi /etc/sysconfig/network
HOSTNAME=webserver.mydomain.com
# or without public dns name
HOSTNAME=webserver.localdomain
# reboot

Amazon Linux 2

Change the system hostname to a public DNS name

sudo hostnamectl set-hostname webserver.mydomain.com
# reboot

Other

In other distros it should be enough to change:

$ vi /etc/hosts
127.0.0.1 ''newHostName''
127.0.0.1   localhost localhost.localdomain
::1         localhost localhost.localdomain

Ubuntu >14.04

$ vi /etc/hosts
127.0.0.1       localhost
127.0.1.1       ''newHostName'' ''newHostName''.home

Temp hostname

Temporarily changing hostname can be achieved by the command below then logout and login again to see the effect in bash.

$ hostname newHostName

Restart networking

If you changed /etc/hosts or /etc/sysconfig/network file you want to restart networking to ensure that changes will be persistent on reboot:

$ /etc/init.d/network restart        # Redhat based
$ sudo service networking restart    # Debian/Ubuntu distros