Setting the Hostname on Linux

I’ve had to do this many times, and have never really found a good, definitive tutorial on this until now. Because of this, I decided to just copy and paste it into my blog in case they take it down at some point.

The following came from: http://www.cpqlinux.com/hostname.html

Checking your Linux host name

First, see if your host name is set correclty using the following commands:

uname -n
hostname -a
hostname -s
hostname -d
hostname -f
hostname

If the above commands return correctly with no errors then all may be well;
however, you may want to read on to verify that all settings are correct.


Configuring /etc/hosts

If your IP address is assigned to you by a DHCP server, then /etc/hosts is configured as follows:

127.0.0.1	mybox.mydomain.com	localhost.localdomain localhost mybox

If you have a static IP address, then /etc/hosts is configured as follows:

127.0.0.1	localhost.localdomain localhost
192.168.0.10	mybox.mydomain.com	mybox


Setting the Host Name using “hostname”

After updating the /etc/hosts file correctly, the “hostname” command should be run as follows to set your hostname:

hostname mybox.mydomain.com


Checking /etc/HOSTNAME (if present)

You may or may not have the file /etc/HOSTNAME:

mybox.mydomain.com


Checking /etc/sysconfig/network

If you have a static IP address, then /etc/sysconfig/network is configured as follows:

NETWORKING=yes
HOSTNAME="mybox.mydomain.com"
...


If your IP address is assigned to you by a DHCP server, and you wish to update the local DNS server through Dynamic DNS, then /etc/sysconfig/network is configured as follows:

NETWORKING=yes
HOSTNAME="mybox.mydomain.com"
DHCP_HOSTNAME="mybox.mydomain.com"
...


It makes more sense to move this “DHCP_HOSTNAME” variable into /etc/sysconfig/network-scripts/ifcfg-eth0 (or appropriate NIC cfg file). So the above section has been moved, see below. If you have only 1 NIC, then the above struck section works fine, but with more than 1 NIC it makes no sense. Maybe this is true for the “‘HOSTNAME” line too, maybe that line should be moved into /etc/sysconfig/network-scripts/ifcfg-eth0 as well. I will investigate further. By default RHL places HOSTNAME=localhost.localdomain in /etc/sysconfig/network.


Checking /proc/sys/kernel/hostname

This is checked with the following command:

cat /proc/sys/kernel/hostname

If you need to set this file, you can either reboot or set it now with the following command:

echo mybox.mydomain.com > /proc/sys/kernel/hostname


Dynamic DNS – Updating the local DNS server with your host name and DHCP IP

For Red Hat Linux if you receive your IP address from a DHCP server, you may update the local DNS server by adding the following line to the correct ifcfg file in /etc/sysconfig/network-scripts, such as ifcfg-eth0 or ifcfg-eth1:

DHCP_HOSTNAME="mybox.mydomain.com"

or if running Debian, edit /etc/network/interfaces as follows (adding the hostname line):


iface eth0 inet dhcp
    hostname mybox.mydomain.com

Filed under Reference by

Comment

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Leave a Comment

Disclaimer: According to the new FTC guidelines, I have to tell you that sometimes I get paid for recommending certain products on my blog. Not all the time, but often. Sometimes I get products for free (ok...fine...most of the time I get stuff for free).

Register Login