Curl Не удалось подключиться к порту localhost 80
Мои файлы файлов hosts 127.0.0.1
to localhost
.
$ curl -I 'localhost'
curl: (7) Failed to connect to localhost port 80: Connection refused
И затем
$ 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
В моем файле hosts у меня есть
127.0.0.1 localhost
Похоже, команда curl
не распознает записи в /etc/hosts
. Может кто-нибудь объяснить, почему?
update: Я еще должен попробовать это, но я решил, что вы можете настроить nginx для ответа на ipv4 и ipv6
Ответы
Ответ 1
Поскольку у вас есть строка ::1 localhost
в вашем файле hosts, похоже, что curl пытается использовать IPv6 для связи с вашим локальным веб-сервером.
Так как веб-сервер не прослушивает IPv6, соединение терпит неудачу.
Вы можете попытаться использовать параметр --ipv4
для curl
, который должен принудительно подключиться к IPv4, когда оба доступны.
Ответ 2
Если кто-то еще сталкивается с этим, и принятый ответ не работает (это не для меня), проверьте, нужно ли указывать порт, отличный от 80. В моем случае я запускал сервер rails на localhost:3000
и просто использовал curl http://localhost
, который попадал в порт 80.
Изменение команды на curl http://localhost:3000
- это то, что сработало в моем случае.
Ответ 3
У меня также была проблема с отказавшим соединением на порту 80. Я не использовал localhost.
curl --data-binary "@/textfile.txt" "http://www.myserver.com/123.php"
Проблема заключалась в том, что в моем файле textfile.txt уменулось äåö.
Ответ 4
В моем случае файл ~/.curlrc настроил неправильный прокси.