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 hostnameIf 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 myboxIf 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/hostnameIf 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
THANK YOU JOHN !!!!
How do you setup multiple hostnames or add another hostname?