首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch:无法通过curl连接,奇怪的不一致行为

Elasticsearch:无法通过curl连接,奇怪的不一致行为
EN

Stack Overflow用户
提问于 2015-01-15 06:39:27
回答 3查看 16.5K关注 0票数 5

我正在运行Elasticsearch 1.3.4,它是通过Homebrew在Mac OS X 10.10上新安装的:

代码语言:javascript
复制
$ brew install elasticsearch
$ elasticsearch

在浏览器中运行http://localhost:9200/_cluster/state成功:

代码语言:javascript
复制
{
  "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命令失败:

代码语言:javascript
复制
$ curl -XGET "http://localhost:9200/_cluster/state"
curl: (7) Failed to connect to localhost port 9200: Connection refused

此外,curl命令会间歇性地成功,但只有在浏览器命中该URL之后,它才会工作一次,然后再次失败,并显示上述错误。

我怎么才能修复它呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-15 16:32:28

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

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

请查收并通知我。

票数 21
EN

Stack Overflow用户

发布于 2015-02-09 03:50:04

我也有同样的问题(OSX10.10& ES 1.3.4)。

快速的解决方案是强制curl在--ipv4中使用IPv4

代码语言:javascript
复制
curl --ipv4 -XGET "http://localhost:9200/_cluster/state"

(至少对我来说是这样的)

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

代码语言:javascript
复制
#fe80::1%lo0    localhost
票数 7
EN

Stack Overflow用户

发布于 2016-10-13 22:19:02

我得到了类似的问题,但似乎是另一种情况。

Elasticsearch似乎在监听ipv6,但没有监听ipv4。为了强制我的客户机与它对话(在我的例子中是节点js驱动程序1),我发现ipv6本地主机的符号是唯一的方法:http://[::1]:9200

1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27953770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档