I've encountered a really strange Mac problem: Safari is unable to connect to localhost whereas all other applications can connect as normal (Firefox, Chrome, ping, etc.).

My /etc/hosts is the standard setup:

$ egrep localhost /etc/hosts
# localhost is used to configure the loopback interface   localhost
::1         localhost 
fe80::1%lo0 localhost   testing.localhost

Question: Have anyone else encountered this? What could be the problem?

Update #1: I have a server running on localhost:8080. When accessing from Safari I get the error message "Safari could not connect to the server". "http://localhost:8080/" works flawlessly in Firefox and Chrome.

Update #2: Same problem with "" - so it does not seem to be related to resolving localhost to

  • Is there any remote chance your are using a proxy server? Commented Sep 3, 2009 at 8:34
  • Diago: I'm not using a proxy server.
    – knorv
    Commented Sep 4, 2009 at 8:17
  • 1
    What's the http server running on localhost?
    – user4358
    Commented Sep 6, 2009 at 10:55
  • 1
    For the archives (see comments at grawity's answer), though it does not solve the question above: on my Mac OS X 10.6, with the /etc/hosts as above and IPv6 left at its default automatic, requesting makes Safari use IPv4 (which could still connect to a server providing IPv6). Requesting localhost:8080 makes Safari use IPv6.
    – Arjan
    Commented Sep 7, 2009 at 15:14
  • how about sniffing to see what the difference is between the two browsers' requests?
    – mihi
    Commented Sep 8, 2009 at 17:28

8 Answers 8


I think we need a little more information based on your question.

I'm going to guess you have a web server running to accept requests? I currently don't, and Safari won't connect to, because it "Couldn't find" - even though I can ping it just fine.

So first, you need to have something running. Secondly, have you tried connecting to testing.localhost with Safari, just incase the two entries are confusing Safari (this is entirely possible).

When you say "applications can connect as normal" with Chrome and Firefox, what are you seeing? The web page you're expecting to see? A different error?


I downloaded and installed MAMP, and I could not reproduce this error.

Some forum threads suggest IPv6 resolution is causing this issue. I would be inclined to turn off IPv6 and remove the entry from the hosts file (temporarily just for testing)

  1. Apple Menu > System Preferences
  2. Network
  3. Select your Network Connection > Advanced
  4. Configure IPv6 > Off

Apply, restart, and see how it goes.

  • Thanks for the input. I've added a clarifying update to my post.
    – knorv
    Commented Aug 27, 2009 at 16:48
  • 1
    I had the same problem. I removed the IPv6 lines from /etc/hosts and it is working. Thanks for the hint.
    – tamasd
    Commented Aug 21, 2011 at 10:26

I've had this happen before -- using http://computername.local/ worked for me, but I'm unsure why it would be different than just using a name in a host file.

  • the problem might be that the connection to goes through the interface lo0, whereas computername.local doesn't need to... Commented Sep 7, 2009 at 17:01

Comment out the line:

::1         localhost 

from your /etc/hosts file. Apparently this would be caused by IPv6 support in Safari.

  • You may be right, but does not work either and I don't think that would rely on anything from the hosts file. (However, like EvilChookie answered: disabling IPV6 in the network settings may have a different result.)
    – Arjan
    Commented Sep 7, 2009 at 6:59

Some applications decide to bind to only a single interface -, for example, if that is the address assigned to eth0 or such - instead of using for all interfaces.

Others might be using only IPv6 addresses ::1 (localhost) or :: (all interfaces). Try http://[::1]:8080/ in this case.

  • Interesting! The python -m SimpleHTTPServer 8080 does not support http://[::1]:8080/ but the built-in Apache (Web Sharing) does. (Though, if the application would only allow some address or some protocol, then wouldn't other browsers show the same problems while connecting?)
    – Arjan
    Commented Sep 7, 2009 at 8:04
  • Arjan: Maybe Safari first tries IPv4, gets "Connection Refused", and stops trying? I don't actually know. Commented Sep 7, 2009 at 11:11
  • When using Listen 8080 or Listen [::1]:8080 in Apache's /etc/apache2/httpd.conf then sudo lsof -i :8080 shows that httpd is using IPv6 only. Next, requesting in Safari makes lsof show Safari uses IPv4, but still connects fine. Using localhost:8080 makes Safari use IPv6. Likewise Listen only enables IPv4. But: Listen localhost:8080 makes httpd use BOTH IPv4 and IPv6. Still: Safari handles all, on my Mac. (I wonder if @knorv has issues when using Apache or Python rather than the server (s)he is using. And if changing something like Listen helps.)
    – Arjan
    Commented Sep 7, 2009 at 12:10

i'm not going to answer your question directly, but offer an alternative solution: use virtualhostx to manage the local DNS. See also if MAMP is not a good solution for your local development needs (if that's what you're after).

  • Sorry, but this is totally unrelated to my question. I'm not even using Apache.
    – knorv
    Commented Sep 4, 2009 at 8:18

To ensure it's not an issue with your web server (like @nagul asked: what server are you using?), on my 10.6 Snow Leopard with IPv6 left at automatic, and even with testing.localhost added to my /etc/hosts, the following works fine:

  • Change the Listen port of the built-in Apache from 80 to 8080:
    sudo vi /etc/apache2/httpd.conf
  • Run the built-in Apache by enabling System Preferences, Sharing, Web Sharing. Or restart using: sudo apachectl restart

Likewise, for me no problems using:

  • python -m SimpleHTTPServer 8080

I know you stated you're not using any proxy. Just in case there's any doubt: recent versions of Firefox allow you to choose between Firefox-specific network settings (which was the only option in older versions), and the system settings. Safari always uses the system settings. Of course, good proxy settings would ignore local addresses (defaults on my Mac for Bypass proxy settings for these Hosts & Domains: *.local, *.lan, 169.254/16). Still, one could check if Firefox still works when making it use the system settings just like Safari. (Firefox Preferences, Advanced, tab Network, button Settings.)

(Anything in the server logs or Console logs? Which version of Mac OS?)


What's your DNS? some DNS providers like OpenDNS depends on your settings might prevent you from going somewhere, so to test it completely remove DNS and make sure you have no proxy configured as well

  • I doubt DNS can be an issue if does not work.
    – Arjan
    Commented Sep 9, 2009 at 22:20

it sounds like your server may not be running on the ip and port you're expecting. what is output when you run the following in a terminal?

netstat -anp tcp | grep 8080

you should see a line corresponding to your server. if no line appears, then your server may be running on a different port.

  • That would make it Quite A Wonder that other browsers work fine. ;-)
    – Arjan
    Commented Sep 9, 2009 at 16:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .