41

如何只允许弹性搜索的本地请求?所以命令如下:

curl -XGET 'http://localhost:9200/twitter/_settings'

只能在 localhost 上运行并请求如下:

curl -XGET 'http://mydomain.com:9200/twitter/_settings'

会被拒绝吗?

因为,据我所知,elasticsearch 默认允许它。

编辑:

根据http://www.elasticsearch.org/guide/reference/modules/network.html 您可以管理bind_host参数以允许主机。默认情况下,它设置为anyLocalAddress

4

3 回答 3

122

对于 v2.0.0 之前的 elasticsearch,如果您希望 http 传输和内部 elasticsearch 传输都仅在 localhost 上侦听,只需将以下行添加到elasticsearch.yml文件中。

network.host: "127.0.0.1"

如果您只想在 localhost 上侦听 http 传输,请添加以下行。

http.host: "127.0.0.1"

从 v2.0 开始,elasticsearch 默认只监听 localhost。因此,不需要额外的配置。

于 2013-03-19T20:18:48.630 回答
6

如果您的最终目标是拒绝来自主机外部的任何请求,最可靠的方法是修改主机的iptables,以便它拒绝对 ElasticSearch (9200-9300) 使用的服务端口的任何传入请求。

如果最终目标是确保每个人都使用独占 DNS 引用服务,那么最好使用可以代理 HTTPd 或 nginx 等请求的 HTTP 服务器来实现这一点。

于 2013-03-19T15:29:48.383 回答
1

我使用这个参数:

http.host:“127.0.0.1”

该参数不接受外部请求的http请求。

于 2017-01-17T08:22:25.447 回答