我以这种方式在 CentOS 7.2 上安装了 Elastic Search 1.7.4:
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.4.noarch.rpm
sudo rpm -ivh elasticsearch-1.7.4.noarch.rpm
Run Code Online (Sandbox Code Playgroud)
该服务已启动且 ES 工作(使用 curl 验证),但是,它仅使用默认配置侦听 IPv6。netstat -na 给了我以下信息:
tcp6 0 0 :::9200 :::* LISTEN
tcp6 0 0 :::9300 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
使用来自其他服务器的 nmap 我看到端口 9200 和 9300 被过滤,防火墙被禁用。
编辑 /etc/elasticsearch/elasticsearch.yml 和设置:
network.bind_host: 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
不会改变任何东西。将此设置为服务器的外部 IPv4 地址确实会在 netstat -na 输出中添加额外的两个条目,但我需要本地网络可以访问 ES,因此这是无用的,netstat 仍将其注册为 tcp6。
tcp6 0 0 192.168.0.54:9200 :::* LISTEN
tcp6 0 0 192.168.0.54:9300 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
环境:
network.bind_host: _eth0:ipv4_
Run Code Online (Sandbox Code Playgroud)
使 ES 绑定到本地 IPv4,然后它当然只能从本地服务器使用。省略“ipv4”部分会导致 ES 绑定到 NIC 的 IPv6 地址。
如何让 …