curl N'a pas réussi à se connecter au port 80 de localhost

Mon fichier hosts cartes 127.0.0.1localhost.

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

Et

$ 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

Dans mon fichier hosts, j'ai

127.0.0.1   localhost

Il semble que curl la commande ne reconnaît pas les entrées de /etc/hosts. Quelqu'un peut m'expliquer pourquoi?

mise à jour: Je n'ai pas encore essayé mais j'ai discovered que vous pouvez configurer nginx pour répondre à ipv4 et ipv6

27
demandé sur lfender6445 2014-04-09 08:15:50

4 réponses

Puisque vous avez un ::1 localhost dans votre fichier hosts, il semblerait que curl tente D'utiliser IPv6 pour contacter votre serveur web local.

depuis que le serveur web n'écoute pas sur IPv6, la connexion échoue.

Vous pouvez essayer d'utiliser le --ipv4 option curl, ce qui devrait forcer une connexion IPv4 lorsque les deux sont disponibles.

50
répondu Joachim Isaksson 2014-04-09 04:34:05

si quelqu'un d'autre tombe sur ceci et que la réponse acceptée ne fonctionne pas (ce n'est pas le cas pour moi), vérifiez si vous avez besoin de spécifier un port autre que 80. Dans mon cas, j'utilisais un serveur rail à localhost:3000 et c'était juste à l'aide de curl http://localhost, qui touchait le port 80.

changer la commande en curl http://localhost:3000 est-ce qui a fonctionné dans mon cas.

2
répondu sixty4bit 2016-03-24 01:07:24

j'ai aussi eu des problèmes avec la connexion refusée sur le port 80. Je n'ai pas utilisé localhost.

curl --data-binary "@/textfile.txt" "http://www.myserver.com/123.php"

problème était que j'avais umlauts äåö dans mon textfile.txt.

1
répondu Toydor 2017-03-14 14:26:33

Dans mon cas, le fichier ~/.curlrc avait un mauvais mandataire configuré.

1
répondu Bess 2017-04-12 09:12:19