Mac OS X Mountain Lion can't ping/telnet localhost. Point to a wrong public IP
I've been developing Node.js apps on my localhost on port 1337 for last two years with no problem as shown below.
$ node app
App started on port 1337
Today I wanted to test how things go with default port 80, so I did:
$ sudo node app
App started on port 80
But after that my network went crazy. Now I can't access any local address including localhost. When I ping to localhost it points to some weird public IP address (218.38.137.125) instead of 127.0.0.1.
$ ping localhost
PING localhost.local (218.38.137.125): 56 data bytes
...
218.38.137.125 is not my public IP address.
When I telnet I see the same wrong IP address:
$ telnet localhost
Trying 218.38.137.125...
telnet: connect to address 218.38.137.125: Connection refused
telnet: Unable to connect to remote host
My /etc/hosts is the following:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Can anybody suggest what's wrong?
I'm completely out of guesses and can't even continue my work.
Solution 1:
I found the problem. It happens to be the incorrect line endings in /etc/hosts file.
I edited it using Sublime Text 2, which happens to be a wrong choice as it added CR line terminators.
$ file -b /etc/hosts
ASCII English text, with CR line terminators
As mentioned in https://discussions.apple.com/message/20103434#20103434, it must be only ASCII English text.
So, copying the /etc/hosts contents and overriding this file using "vi", resolved the problem. Now:
$ file -b /etc/hosts
ASCII English text
I hope this will help others as well.