What is a host file?
A host file or /etc/hosts
in Linux, it’s a locally administrated text file which is used by the operating system to translate host names into IP addresses. Keep in mind that the hosts
file has a bigger priority then DNS by default, consequently the hosts are first resolved from here. The behavior can be changed via /etc/nsswitch.conf.
Example:
cat /etc/hosts
127.0.0.1 myserver.example.com myserver 192.168.0.1 myrouter
In this example we have defined two hosts.
1) myserver with the IP address 127.0.0.1 and the FQDN is myserver.example.com.
2) myrouter with the IP address 192.168.0.1, without a domain name, this is not a FQDN.
Test:
Just use the simple ping
command, as you see in the example from below, the host is successfully translated.
ping myserver -c 1
PING myserver (127.0.0.1) 56(84) bytes of data.
64 bytes from myserver (127.0.0.1): icmp_seq=1 ttl=64 time=0.045 ms
What is FQDN?
FQDN is the abbreviation for Fully Qualified Domain Name, a domain name which must include at least a second-level domain and a top-level domain.
In our example myserver.example.com:
– host name is myserver
– second level-domain is example
– top-level domain is .com.
So.. the correct entry of a FQDN would be:
ip_address
hostname.domain
hostname
Local system’s host name
Some apps or services like Kerberos requires that the local system’s host name to be FQDN.
/etc/hostname
file stores the system’s host name, if is modified the change will be effective only after reboot.
cat /etc/hostname
myserver
Check if local system’s host name is FQDN
You need to make sure that the local host name has a valid FQDN entry in /etc/hosts
.
cat /etc/hosts | grep `hostname`
127.0.0.1 myserver.example.com myserver
You can also check with the hostname
command.
Display the host name
hostname
myserver
Display the domain name
hostname -d
example.com
Display the FQDN
hostname -f
myserver.example.com