我有一个运行Elasticsearch的e2 ubuntu实例,尽管它在本地运行良好,但无法使用Windows PC进行连接curl http://ipaddress:9200/(错误是“无法连接到远程服务器”)。
curl http://ipaddress:9200/
我已经在相同的ubuntu实例上设置了Apache,并curl http://ipaddress:80/在同一台Windows计算机上工作,并且我可以毫无问题地ping该实例。我的Amazon安全组允许tcp从所有IP地址访问所有端口。
curl http://ipaddress:80/
我认为这是一个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绑定到本地主机。因此,您将无法访问它。
这篇博客文章解释了这种变化背后的原因