我的主机文件将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
答案 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配置了错误的代理。