ES 不监听外部请求
ES not listening to external requests
我有一个 e2 ubuntu 实例 运行ning elasticsearch,虽然它在本地工作正常,但我无法使用 curl http://ipaddress:9200/
从 windows 电脑连接(错误是 "unable to connect to the remote server").
我在同一个 ubuntu 实例上设置了 Apache,并且 curl http://ipaddress:80/
在同一个 windows 机器上工作,而且我可以毫无问题地 ping 实例。
我的亚马逊安全组允许从所有 IP 地址到所有端口的 tcp 访问。
我认为这是一个 ES 配置问题,尽管我添加到 elasticsearch.yml 的唯一行是:
http.cors.enabled: true
http.cors.allow-origin: "*"
当我 运行 netstat 时,我注意到一些奇怪的事情,端口 9200 和 9300(ES 端口)的本地地址中有一个 1 - 这会阻止我的外部请求吗?如果是,我该怎么办改变这个?
ubuntu@ESServer$ netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 448 (AWS PRIVATE IP):22 (MY IP):63572 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:9200 :::* LISTEN
tcp6 0 0 127.0.0.1:9200 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 ::1:9300 :::* LISTEN
tcp6 0 0 127.0.0.1:9300 :::* LISTEN
看来你的elasticsearch进程是绑定到localhost的。尝试 运行 像这样:
bin/elasticsearch --network.host _non_loopback_
从 2.0 开始,elasticsearch 绑定到本地主机。因此您无法访问它。
此更改背后的原因在 this blog post
中进行了解释
我有一个 e2 ubuntu 实例 运行ning elasticsearch,虽然它在本地工作正常,但我无法使用 curl http://ipaddress:9200/
从 windows 电脑连接(错误是 "unable to connect to the remote server").
我在同一个 ubuntu 实例上设置了 Apache,并且 curl http://ipaddress:80/
在同一个 windows 机器上工作,而且我可以毫无问题地 ping 实例。
我的亚马逊安全组允许从所有 IP 地址到所有端口的 tcp 访问。
我认为这是一个 ES 配置问题,尽管我添加到 elasticsearch.yml 的唯一行是:
http.cors.enabled: true
http.cors.allow-origin: "*"
当我 运行 netstat 时,我注意到一些奇怪的事情,端口 9200 和 9300(ES 端口)的本地地址中有一个 1 - 这会阻止我的外部请求吗?如果是,我该怎么办改变这个?
ubuntu@ESServer$ netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 448 (AWS PRIVATE IP):22 (MY IP):63572 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:9200 :::* LISTEN
tcp6 0 0 127.0.0.1:9200 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 ::1:9300 :::* LISTEN
tcp6 0 0 127.0.0.1:9300 :::* LISTEN
看来你的elasticsearch进程是绑定到localhost的。尝试 运行 像这样:
bin/elasticsearch --network.host _non_loopback_
从 2.0 开始,elasticsearch 绑定到本地主机。因此您无法访问它。
此更改背后的原因在 this blog post
中进行了解释