访问在ubuntu VM上运行的elasticsearch的其余API时由peer重置连接

时间:2018-01-26 07:14:57

标签: ubuntu elasticsearch

我在运行在Oracle虚拟机顶部的Ubuntu VM上运行elasticsearch。我已将端口转发配置到虚拟机上的VM。本地端口9201正在转发到VM端口9200.如您所知,9200是elasticsearch的其余API端口。现在,当我尝试从本地终端访问elasticsearch的其余api时,如下所示:

curl -vv -XGET 127.0.0.1:9201 

I get  the following:

Note: Unnecessary use of -X or --request, GET is already inferred.
* Rebuilt URL to: 127.0.0.1:9201/
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 9201 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1:9201
> User-Agent: curl/7.47.0
> Accept: */*
> 
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

现在我还在服务器上设置了tcpdump(运行elasticsearch的VM),并在收到请求时转储以下内容:

12:40:39.540317 IP (tos 0x0, ttl 64, id 34977, offset 0, flags [none], proto TCP (6), length 44)
    10.0.2.2.44152 > 10.0.2.15.9200: Flags [S], cksum 0x14d9 (correct), seq 4006784001, win 65535, options [mss 1460], length 0
12:40:39.540346 IP (tos 0x0, ttl 64, id 58786, offset 0, flags [DF], proto TCP (6), length 40)
    10.0.2.15.9200 > 10.0.2.2.44152: Flags [R.], cksum 0x2c82 (correct), seq 0, ack 4006784002, win 0, length 0

但是当SSH到虚拟机(运行elasticsearch的serer)并执行以下操作时:

curl -XGET 127.0.0.1:9200 

{
  "name" : "jEukiTt",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "xk6SzW0kT_WFSXnm-0u4Hw",
  "version" : {
    "number" : "6.1.2",
    "build_hash" : "5b1fea5",
    "build_date" : "2018-01-10T02:35:59.208Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

我得到了上面所需的响应。因为我可以看到服务器(运行elasticsearch的VM)收到请求,但是它将重置信号发送回客户端,并且只是禁止对elasticsearch rest API的请求。如何解决这个问题。

请提前回复 Santhosh

1 个答案:

答案 0 :(得分:0)

当我尝试将Elasticsearch作为docker容器运行时,我遇到了同样的问题,并设法通过在elasticsearch.yml文件中添加以下行来对其进行了修复

network.bind_host: 0.0.0.0

或者您可以将其作为环境变量添加到docker-compose文件中,如下所示:

environment:
    - network.bind_host=0.0.0.0

它的作用是将Elasticsearch Rest服务器绑定到0.0.0.0,从而允许它接受进入任何IP的连接