Difference between /etc/hosts and /etc/resolv.conf

Solution 1:

resolv.conf specifies the nameservers for resolver lookups, where it will actually use the DNS protocol for resolving the hostnames.
Typically the hosts file is used for administrative purposes, such as backend and internal functions, which is substantially more isolated in scope, as only the local server will reference it.

/etc/nsswitch.conf specifies the lookup order with the hosts entry.

If this does not answer your question, please clarify further.

Look at the following manpages:

HOSTS(5)  
RESOLVER(5)

Solution 2:

resolv.conf specifies nameservers in order of search preference.

hosts overrides all nameservers by mapping urls/shortnames to IPs.


Solution 3:

  • /etc/resolv.conf: Lists nameservers that are used by your host for DNS resolution. If you are using DHCP, this file is automatically populated with DNS record issued by DHCP server.
  • /etc/hosts/: It is just a static lookup method for resolution.
  • /etc/nsswitch.conf: It defined order of resolution. Who should it consult first for resolution, a DNS or a host file? For example, if the file has following configuration hosts: files dns then /etc/hosts file will be checked first for resolution, if domain is still un-resolvable, DNS will then be consulted.