Can't Connect to Elasticsearch (through Curl)

1) Check what's the status of your port 9200, with lsof command in linux.

In my case following is the result when elasticsearch is started.

prayag@prayag:~$ sudo lsof -i TCP | grep 9200 
chrome  2639 praayg   84u  IPv4 116310      0t0  TCP prayag.local:58989->10.0.4.70:9200 (ESTABLISHED)
chrome  2639 prayag   99u  IPv4 116313      0t0  TCP prayag.local:58990->10.0.4.70:9200 (ESTABLISHED)
java    7634 prayag  141u  IPv6 130960      0t0  TCP *:9200 (LISTEN)

elasticsearch is not a service to me, otherwise to find the port es is running; on I could have checked,

$ sudo lsof -iTCP -sTCP:LISTEN | grep elasticsearch

2) check the elasticsearch endpoint

$ curl -IGET http://localhost:9200
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 327
  • -IGET is equivalent to --head that returns http response headers only.

  • response 200 means elasticsearch endpoint is responding properly.


curl -GET http://127.0.0.1:9200 is the wrong command.

Try curl -XGET http://127.0.0.1:9200. It should return the short info about your running local node and status 200. If that doesn't work then something else must be wrong.