web-dev-qa-db-ja.com

curl localhostポート80への接続に失敗しました

ホストファイルは127.0.0.1localhostにマップします。

$ 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のエントリを認識できないようです。誰かが理由を説明できますか?

update:私はまだこれを試してみましたが、発見できました ipv4とipv6に応答するようにnginx

30
lfender6445

Hostsファイルに::1 localhost行があるため、curlはIPv6を使用してローカルWebサーバーに接続しようとしているようです。

WebサーバーはIPv6をリッスンしていないため、接続は失敗します。

curl--ipv4オプションを使用すると、両方が使用可能な場合にIPv4接続を強制する必要があります。

52

他の誰かがこれに遭遇し、受け入れられた答えが機能しない場合(私にとってはそうではなかった)、80以外のポートを指定する必要があるかどうかを確認してください。私の場合、Railsサーバーはlocalhost:3000にあり、ポート80にヒットしていたcurl http://localhostを使用していました。

私の場合、コマンドをcurl http://localhost:3000に変更することがうまくいきました。

5
sixty4bit

また、ポート80で拒否された接続に問題がありました。localhostを使用しませんでした。

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

問題は、textfile.txtにウムラウトäåöが含まれていたことです。

1
Toydor

私の場合、ファイル〜/ .curlrcには間違ったプロキシが設定されていました。

1
Bessi