我用 Berksfile 制作了 ElasticSearch 服务器。
然后安装到 ElasticSearch 2.1.0。
我尝试通过 guest 操作系统执行此命令。
[vagrant@vm1-berkshelf ~]$ curl http://localhost:9200
{
"name" : "vm1-berkshelf",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.1.0",
"build_hash" : "72cd1f1a3eee09505e036106146dc1949dc5dc87",
"build_timestamp" : "2015-11-18T22:40:03Z",
"build_snapshot" : false,
"lucene_version" : "5.3.1"
},
"tagline" : "You Know, for Search"
}
可以连接。 但如果主机操作系统连接到该服务器,则无法连接。
curl http://192.168.33.12:9200
我尝试检查 Iptables,但它看起来对所有端口都可用。
[vagrant@vm1-berkshelf ~]$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
你知道如何解决这个问题吗?
最佳答案
自 2.0 版本以来,Elasticsearch binds to localhost by default (作为一种安全措施,防止您的节点在您不知情的情况下连接到网络上的其他节点)。
因此,您需要做的只是编辑 elasticsearch.yml
配置文件并更改 network.bind_host
设置,如下所示:
network.bind_host: 0
然后,您需要重新启动节点,然后就可以使用curl 命令从远程主机访问该节点。
关于ElasticSearch 无法通过主机浏览器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34526070/