elasticsearch,Curl,elasticsearch" /> elasticsearch,Curl,elasticsearch" />

Curl Elasticsearch:can';t通过卷曲连接,奇怪的不一致行为

Curl Elasticsearch:can';t通过卷曲连接,奇怪的不一致行为,curl,elasticsearch,Curl,elasticsearch,我正在运行Elasticsearch 1.3.4,通过自制程序新安装在Mac OS X 10.10上: $ brew install elasticsearch $ elasticsearch 正在运行http://localhost:9200/_cluster/state在浏览器中成功: { "cluster_name": "elasticsearch_jbrukh", "version": 2, "master_node": "q6Jzcza_RwaVvc_1u95O1Q",

我正在运行Elasticsearch 1.3.4,通过自制程序新安装在Mac OS X 10.10上:

$ brew install elasticsearch
$ elasticsearch
正在运行
http://localhost:9200/_cluster/state
在浏览器中成功:

{
  "cluster_name": "elasticsearch_jbrukh",
  "version": 2,
  "master_node": "q6Jzcza_RwaVvc_1u95O1Q",
  "blocks": {},
  "nodes": {
    "q6Jzcza_RwaVvc_1u95O1Q": {
      "name": "Ethan Edwards",
      "transport_address": "inet[/127.0.0.1:9300]",
      "attributes": {}
    }
  },
  "metadata": {
    "templates": {},
    "indices": {}
  },
  "routing_table": {
    "indices": {}
  },
  "routing_nodes": {
    "unassigned": [],
    "nodes": {
      "q6Jzcza_RwaVvc_1u95O1Q": []
    }
  },
  "allocations": []
}
但是,以下curl命令失败:

$ curl -XGET "http://localhost:9200/_cluster/state"
curl: (7) Failed to connect to localhost port 9200: Connection refused
此外,curl命令会间歇性成功,但只有在浏览器命中该URL后,它才会工作一次,然后再次失败,出现上述错误


我怎样才能解决这个问题?

正如我之前回答的一个类似问题一样。在我的MacOSX上,我使用127.0.0.1:9200/而不是因为我有同样的问题

我认为,当您使用该命令时,终端将用其IPv6地址替换本地主机,我不确定curl是否支持这一点

请检查并让我知道。

我也有同样的问题(OS X 10.10&ES 1.3.4)

快速解决方案是强制curl将IPv4与
--IPv4一起使用

curl --ipv4 -XGET "http://localhost:9200/_cluster/state"
(至少对我来说是这样)

永久的解决方案是编辑
/etc/hosts
并注释掉这一行

#fe80::1%lo0    localhost

我也遇到了类似的问题,但似乎情况正好相反

Elasticsearch似乎正在侦听ipv6而不是ipv4。为了强迫我的客户机与它对话(在我的例子中是节点js驱动程序[1]),我发现ipv6 localhost的符号是命中它的唯一方法:


[1]

是的,我可以证实情况确实如此。谢谢。在像我一样花费大量时间查看此错误消息之前,请先给服务一分钟时间启动,然后再尝试诊断可能不存在的问题。我发现我在AWS上m3.medium实例上的问题就是这样。不是所有的问题,但可以节省一些宝贵的时间。