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.
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
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.
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