web-dev-qa-db-ja.com

cURLはlocalhostに接続できませんが、ブラウザーは接続できます

Railsアプリをローカル(シンサーバー)で実行しています。ブラウザ(localhost:3000)からローカルに接続できますが、curlを使用しようとすると次のようになります。

curl -H 'id:1' -i 'http://localhost:3000/api/data' -v

* Hostname was NOT found in DNS cache
*   Trying ::1...
* Adding handle: conn: 0x7fd121808200
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fd121808200) send_pipe: 1, recv_pipe: 0
* Connection failed
* connect to ::1 port 3000 failed: Connection refused
*   Trying fe80::1...
* Connection failed
* connect to fe80::1 port 3000 failed: Connection refused
* Failed to connect to localhost port 3000: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 3000: Connection refused

これは以前は問題なく機能していましたが、最近、Mavericksに更新しました。 Webから正常にカールすることもできます。

29
jbeck

これは curlバグa strange one )です。/etc/hostsに応答しないIPv6エントリがある場合、curlはIPv4にフォールバックできません。

-4オプションを使用して、IPv4を強制的に使用できます。

53
Steve Clay

の代わりに

curl localhost:3000

試してみる

curl 0.0.0.0:3000

できます。
そうでない場合は、Rails server:

=> Booting WEBrick
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2014-10-28 15:30:08] INFO  WEBrick 1.3.1
[2014-10-28 15:30:08] INFO  Ruby 2.0.0 (2014-02-24) [x86_64-darwin12.5.0]
[2014-10-28 15:30:08] INFO  WEBrick::HTTPServer#start: pid=4004 port=3000

ENV['Host']の代わりに2行目の終わりにURLを使用します

22
Marco Prins

プロキシの背後にいますか?次に、以下を使用してプロキシを完全にバイパスします。

curl -x "" "http://127.0.0.1:3000"
2
Pithikos

/ etc/hostsに触れておらず、scutilレポートが肯定的であると仮定すると:

$ scutil -r 127.0.0.1
Reachable,Local Address
$ scutil -r localhost
Reachable,Local Address

私の推測では、ファイアウォールはアクティブであり、curlからの接続を受け入れていません。

(私のマシンはスウェーデン語を使用するように設定されているため、言語の代替を推測しています)環境設定->セキュリティ->ファイアウォールの代替->プラス記号->(curlおよび追加してください)

注:シェルで実際に使用しているカールを必ず追加してください。

$ type -a curl
curl is /opt/local/bin/curl
curl is /usr/bin/curl
1
FredrikHedman

この問題のもう1つの原因は、プロキシアドレスが設定されたシステムの構成不良です。走る

export http_proxy=

そして、curlコマンドを再実行して、これを要因として排除します。私にとってこの問題は修正されました。

0
Philluminati