Port 9200 is the Elasticsearch REST API port. Elasticsearch also uses port 9300 for inter-node transport. Like Redis, early Elasticsearch versions had no authentication – thousands of public instances were data-breached. Elasticsearch 8.x enables security by default. Port 9200 should be bound to localhost or protected by a reverse proxy with authentication.
Port Number
9200
Protocol
TCP
Service
Elasticsearch REST API
Range
IANA Registered (1024–49151)
Check Elasticsearch version (determines security defaults)
curl -s http://localhost:9200/ | jq .version.numberCluster health – green/yellow/red status
curl -s http://localhost:9200/_cluster/health?prettyList all indices sorted by size
curl -s http://localhost:9200/_cat/indices?v&s=store.size:descCheck JVM heap usage across cluster nodes
curl -s http://localhost:9200/_nodes/stats/jvm | jq '.nodes[].jvm.mem'curl http://localhost:9200/_cluster/health
curl http://localhost:9200/_cat/indices?v
curl -XGET 'http://localhost:9200/index/_search?q=field:value'Elasticsearch was created by Shay Banon in 2010, built on Apache Lucene. Port 9200 was chosen for the HTTP API, 9300 for inter-node transport. Elastic (the company) added security features via X-Pack (initially paid, free since 6.8/7.1). Version 8.0 (2022) enabled security by default. AWS forked it as OpenSearch in 2021.
Elasticsearch vs OpenSearch?
OpenSearch is AWS's fork of Elasticsearch 7.10 (when Elastic changed to SSPL license). Both use port 9200, share the same query DSL, and are largely compatible. OpenSearch has diverged on security (included free from day one) and some features. Choose based on licensing needs and cloud provider.
How do I secure an existing Elasticsearch cluster?
Elasticsearch 8+: security is on by default (auto-generated certs + elastic superuser). Pre-8: enable xpack.security.enabled: true, generate certificates with elasticsearch-certutil, set passwords with elasticsearch-setup-passwords. Then restrict network.host to private IPs and add Nginx/Kibana as the authenticated frontend.