Sunday, April 10, 2022

[SOLVED] curl Failed to connect to localhost port 80

Issue

My host's file maps 127.0.0.1 to localhost.

$ curl -I 'localhost'
curl: (7) Failed to connect to localhost port 80: Connection refused

And then

$ curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.2.4
Date: Wed, 09 Apr 2014 04:20:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 23 Oct 2012 21:48:34 GMT
Connection: keep-alive
Accept-Ranges: bytes

In my host's file I have

127.0.0.1   localhost

It appears that the curl command fails to recognize entries in /etc/hosts. Can someone explain why?

update: I've yet to try this but I've discovered you can configure nginx to respond to ipv4 and ipv6


Solution

Since you have a ::1 localhost line in your hosts file, it would seem that curl is attempting to use IPv6 to contact your local web server.

Since the web server is not listening on IPv6, the connection fails.

You could try to use the --ipv4 option to curl, which should force an IPv4 connection when both are available.



Answered By - Joachim Isaksson
Answer Checked By - Cary Denson (WPSolving Admin)