Mac OS X Mountain Lion can't ping/telnet localhost. Point to a wrong public IP

1

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.

Eye

Posted 2013-01-26T04:57:22.747

Reputation: 177

Answers

3

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.

Eye

Posted 2013-01-26T04:57:22.747

Reputation: 177

2you saved my life ! – You knows who – 2014-07-25T06:21:16.037

What a life saver! I cannot thank you enough!!! – iggy2012 – 2016-04-19T19:08:30.503