I'm very new to Ubuntu and I want to know: what is the exact use of /etc/hosts?

Lets say I'm adding this into it :

127.0.x.x mydomain

What does that mean?

up vote 35 down vote accepted

Purpose

The hosts file is one of several system facilities that assists in addressing network nodes in a computer network. It is a common part of an operating system's Internet Protocol (IP) implementation, and serves the function of translating human-friendly hostnames into numeric protocol addresses, called IP addresses, that identify and locate a host in an IP network. In some operating systems, the hosts file's content is used preferentially to other methods, such as the Domain Name System (DNS), but many systems implement name service switches (e.g., nsswitch.conf for Linux and Unix) to provide customization. Unlike the DNS, the hosts file is under the direct control of the local computer's administrator

File content

The hosts file contains lines of text consisting of an IP address in the first text field followed by one or more host names. Each field is separated by white space (blanks or tabulation characters). Comment lines may be included; they are indicated by a hash character (#) in the first position of such lines. Entirely blank lines in the file are ignored. For example, a typical hosts file may contain the following:

# This is an example of the hosts file

127.0.0.1  localhost loopback
::1        localhost

This example only contains entries for the loopback addresses of the system and their host names, a typical default content of the hosts file. The example illustrates that an IP address may have multiple host names, and that a host name may be mapped to several IP addresses.

Wikipedia


This is invalid (?):

127.0.x.x mydomain

Wildcards are * so it should be 127.0.*.* but I hardly see anything else than 127.0.0.1 ;)


What this means is that you can use mydomain as a name for that IP address. It is easier to use www.google.com than to remember the IP address (74.125.132.106) that Google uses for their searchengine. The same works locally (localhost) on your machine. If you run your own Apache instance you can set a local IP address to a name and use that name in a browser.


The ::1 in the example is the IP v6 version for IP addresses.

  • 2
    Can you say me what is the use of ::1 localhost? – batman Sep 2 '12 at 10:36
  • 4
    @batman Same thing for IPv6 – Ward Muylaert Sep 2 '12 at 11:17
  • @batman good q. added it :) – Rinzwind Sep 2 '12 at 14:04

It means that the system will not do a DNS lookup for mydomain, it will be automatically redirected to the IP address you specified in your hosts file.

On most systems the default entry in the hosts file is:

127.0.0.1    localhost

127.0.0.1 is always the address of the computer you're on. For example, if you run a web server on your pc, you can access it from the web browser via the http://localhost:port instead of typing the whole IP address http://127.0.0.1:port.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.