curl无法连接到localhost端口80

时间:2014-04-09 04:15:51

标签: curl nginx

我的主机文件将127.0.0.1映射到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

在我的主机文件中,我有

127.0.0.1   localhost

curl命令似乎无法识别/etc/hosts中的条目。有人可以解释原因吗?

更新:我还没试过,但我发现你可以配置nginx to respond to ipv4 and ipv6

4 个答案:

答案 0 :(得分:51)

由于您的hosts文件中有::1 localhost行,因此curl似乎正在尝试使用IPv6来联系您的本地Web服务器。

由于Web服务器未侦听IPv6,因此连接失败。

您可以尝试使用--ipv4 curl选项来强制使用IPv4连接。

答案 1 :(得分:5)

如果有其他人遇到这个并且接受的答案不起作用(它不适合我),请检查是否需要指定80以外的端口。在我的情况下,我正在运行rails服务器在localhost:3000并且正在使用curl http://localhost,它正在击中80端口。

将命令更改为curl http://localhost:3000是我的工作原理。

答案 2 :(得分:1)

我在端口80上遇到拒绝连接的问题。我没有使用localhost。

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

问题是我在textfile.txt中有变形金刚äåö。

答案 3 :(得分:1)

就我而言,文件〜/ .curlrc配置了错误的代理。