Networking – Why does localhost not work in Windows 8.1, but does


I have a HTTP server running on port 9876.

I put into Chrome and the page loads instantly.

I put http://localhost:9876/ into Chrome and the page never loads.

I have never modified C:\Windows\System32\drivers\etc\hosts.

Every line in the hosts file is commented out.

The following lines exist in the file and may be relevant:

# localhost name resolution is handled within DNS itself.
#       localhost

As I said, I have not added these lines myself. I have not edited the hosts file.

Obviously I can uncomment the second line to make localhost work. But why is this necessary if the first line is correct? Did Microsoft write the first line? It looks like they're telling me that localhost will work without being defined.

Best Answer

I can't find reliable documentation, but it appears since windows 7 they changed localhost resolution to DNS. I'm guessing the DNS client service actually hands back localhost when you do an operation, because your DNS server, where ever it is, probably wont resolve localhost. You can always set the hosts file, and it aught to override what the DNS client gives you.

Here's at least proof that it changed since windows 7:

I'm assuming its the DNS service, because on my Win8 box, those lines are commented, and yet localhost resolves back to ::1 and of course my DNS is not configured for IPv6, and even if it were, it wouldn't resolve localhost.