What are ports 9200 and 9300 used for?

[This is an extension on an older thread - Elasticsearch port 9200 or 9300?]

By default, Elasticsearch uses two ports to listen to external TCP traffic;

  • Port 9200 is used for all API calls over HTTP. This includes search and aggregations, monitoring and anything else that uses a HTTP request. All client libraries will use this port to talk to Elasticsearch
  • Port 9300 is a custom binary protocol used for communications between nodes in a cluster. For things like cluster updates, master elections, nodes joining/leaving, shard allocation

Historically, port 9300 was also used for connections from client libraries, however this type of interaction is deprecated across our official clients, and not supported elsewhere.

You can change the ports that Elasticsearch uses for this, via the http.port and transport.port settings.