Elasticsearch: Failed to connect to localhost port 9200 - Connection refused

By default it should bind to all local addresses. So, assuming you don't have a network layer issue with firewalls, the only ES setting I can think to check is network.bind_host and make sure it is either not set or is set to 0.0.0.0 or ::0 or to the correct IP address for your network.

Update: per comments in ES 2.3 you should set network.host instead.


Tried everything on this page, and only instructions from here helped.

in /etc/default/elasticsearch, make sure these are un-commented:

START_DAEMON=true
ES_USER=elasticsearch
ES_GROUP=elasticsearch
LOG_DIR=/var/log/elasticsearch
DATA_DIR=/var/lib/elasticsearch
WORK_DIR=/tmp/elasticsearch
CONF_DIR=/etc/elasticsearch
CONF_FILE=/etc/elasticsearch/elasticsearch.yml
RESTART_ON_UPGRADE=true

make sure /var/lib/elasticsearch is owned by elasticsearch user:

chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/

Edit /etc/elasticsearch/elasticsearch.yml and add the following line:

network.host: 0.0.0.0

This will "unset" this parameter and will allow connections from other IPs.