This may be a bit of a noobish question, but I was taking a look at /etc/hosts on my new Xubuntu install and saw this:
127.0.0.1 localhost
127.0.1.1 myhostname
On most 'nixes I've used, the second line is omitted, and if I want to add my hostname to the hosts file, I'd just do this:
127.0.0.1 localhost myhostname
Is there a difference between these two files in any practical sense?
There isn't a great deal of difference between the two;
127/8
(eg:127.0.0.0
=>127.255.255.255
) are all bound to the loopback interface.The reason why is documented in the Debian manual in Ch. 5 Network Setup - 5.1.1. The hostname resolution.
Ultimately, it is a bug workaround; the original report is 316099.
To sum up the linked-to information:
/etc/hosts
translating the machine's fully-qualified domain name into its permanent IP address.debian-installer
, and more specifically, itsnetcfg
component, currently (up to March 2013 at least) creates this entry.127.0.1.1
uses the loopback interface, answered by your own machine, just like127.0.0.1
but is a distinct entry in/etc/hosts
which can be considered separately from127.0.0.1
if/when necessary.Thomas Hood explains adding this entry as follows:
but:
I was curious myself, and i didnt like any of the other answer because they didnt seem to answer what i was looking for atleast.
The Answer: Looking back at this doc it almost appears as if Thomas was stating is "giving it another dedicated ip on the loopback allows it to be canonical".
Both point to your loopback. Using the following 127.0.1.1 is an actual IP, on the loopback, whereas 127.0.0.1 is either the device itself, or another ip on the loopback. Both end up on the same subnet, representing the loopback, but are separated by ip. They are equivalent dns wise, but separated because of having dedicated ip.
The point being, you can have all your entries on one line like this
If your hostname is local, meaning doesn't have a global internet DNS entry mapped to an actual internet ip, then in this case Thomas was saying you NEED TO have the 2nd entry line, like this to dedicate it there (to canonical).
I read several answers around, and I'm frankly a bit confused.
I first tried to understand what is canonical hostname here.
What I can say is that @cmroanirgo is right in saying that on my Ubuntu laptop, invoking
with
/etc/hosts
configured like thisreturns
laptop
, whereas changing the file like followsreturns
localhost
.What impacts this can have, I have no idea, except the fact that if you have software that binds to hostname, and you need to talk to it internally to your machine, don't expect to be able to use the "localhost" hostname to do the job, in this setup, since they end up resolving two distinct separate addresses.