Network Administration: Linux Hosts File

The Hosts file is a simple list of IP addresses and the host names associated with each address. You can think of the Hosts file as a local DNS database of sorts. Whenever Linux needs to resolve a DNS name, it first looks for the name in the Hosts file. If Linux finds the name there, it doesn’t have to do a DNS lookup; it simply uses the IP address found in the Hosts file.

For small networks, common practice is to list the host name for each computer on the network in the Hosts file on each computer. Then, whenever you add a new computer to the network, you just update each computer’s Hosts file to include the new computer.

That’s not so bad if the network has just a few computers, but you wouldn’t want to do it that way for a network with 1,000 hosts. That’s why other name resolution systems are more popular for larger networks.

The default Linux Hosts file looks something like this:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1  localhost.localdomain  localhost

Here, the names localhost.localdomain and localhost both resolve to 127.0.0.1, which is the standard local loopback address.

Here’s an example of a Hosts file that has some additional entries:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1  LServer localhost.localdomain  localhost
192.168.1.1    linksys 
192.168.1.100  ward.cleaver.com ward
192.168.1.101  june.cleaver.com june
192.168.1.102  wally.cleaver.com wally
192.168.1.103  theodore.cleaver.com theodore beaver

In the above example, host names for each of the Cleaver family’s four computers have been defined and their Linksys router. Each computer can be accessed by using one of two names (for example, ward.cleaver.com or just ward), except the last one, which has three names.