elasticsearch,Ubuntu,elasticsearch" /> elasticsearch,Ubuntu,elasticsearch" />

访问ubuntu VM上运行的elasticsearch的rest API时,对等方重置连接

访问ubuntu VM上运行的elasticsearch的rest API时,对等方重置连接,ubuntu,elasticsearch,Ubuntu,elasticsearch,Iam在运行在Oracle虚拟机上的Ubuntu虚拟机上运行elasticsearch。我已将端口转发配置为虚拟机上的VM。本地端口9201正在转发到VM端口9200。正如您所知,9200是elasticsearch的RESTAPI端口。现在,当我尝试从本地终端访问elasticsearch的rest api时,如下所示: curl -vv -XGET 127.0.0.1:9201 I get the following: Note: Unnecessary use of -X or -

Iam在运行在Oracle虚拟机上的Ubuntu虚拟机上运行elasticsearch。我已将端口转发配置为虚拟机上的VM。本地端口9201正在转发到VM端口9200。正如您所知,9200是elasticsearch的RESTAPI端口。现在,当我尝试从本地终端访问elasticsearch的rest 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连接到虚拟机(serer运行elasticsearch)并执行以下操作时:

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)接收到请求,但它将重置信号发送回客户端,只是抑制了对ElasticSearchRESTAPI的请求。如何解决这个问题

请提前回复谢谢
Santhosh

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

network.bind\u主机:0.0.0.0

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

environment:
    - network.bind_host=0.0.0.0
这样做的目的是将elasticsearch rest服务器绑定到0.0.0.0,从而允许它接受任何IP的连接