我在运行在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
答案 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的连接