web-dev-qa-db-fra.com

curl Impossible de se connecter au port 80 de l'hôte local

Mes cartes de fichiers d'hôtes 127.0.0.1 à localhost.

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

Et alors

$ 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 la commande curl ne reconnaisse pas les entrées dans /etc/hosts. Quelqu'un peut-il expliquer pourquoi?

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

30
lfender6445

Depuis que tu as un ::1 localhost _ dans votre fichier hosts, il semblerait que curl tente d'utiliser IPv6 pour contacter votre serveur Web local.

Le serveur Web n'écoutant pas sur IPv6, la connexion échoue.

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

52
Joachim Isaksson

Si quelqu'un d'autre rencontre cela et que la réponse acceptée ne fonctionne pas (cela ne m'est pas arrivé), vérifiez si vous devez spécifier un port autre que 80. Dans mon cas, j'utilisais un Rails serveur à localhost:3000 et utilisait juste curl http://localhost, qui frappait le port 80.

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

5
sixty4bit

J'ai également eu un problème de connexion refusée sur le port 80. Je n'ai pas utilisé localhost.

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

Le problème était que j'avais des trémas äåö dans mon fichier texte.txt.

1
Toydor

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

1
Bessi