Port reference
Port 9300 (TCP) – Elasticsearch transport
Default port for Elasticsearch's binary transport protocol used for node-to-node and cluster communication.
Quick facts
- Transport
- tcp
- Category
- Registered
- Risk level
- Critical
Actively exploited and high-impact — keep it off the public internet.
Default state
Older Elasticsearch exposed the transport protocol on 9300 with no authentication or TLS, so a host reaching 9300 could join or query the cluster. Modern versions enable security and bind privately.
What is port 9300 used for?
Port 9300 is the default for Elasticsearch's transport protocol, the internal binary channel that nodes use to talk to each other for cluster formation, shard replication, and internal queries. Unlike the client-facing HTTP/REST API on 9200, port 9300 is meant only for traffic between Elasticsearch nodes themselves. OpenSearch uses the same port for its node communication. Application clients normally never touch 9300 directly.
When would you open it?
Open 9300 only between the Elasticsearch nodes that form a cluster, so they can discover each other and replicate data across different hosts. You restrict it to the cluster members on a private network. If you run a single-node setup, it does not need to be reachable from anywhere else.
Is it safe to open?
Exposing 9300 is dangerous because a reachable transport port can let an outsider join the cluster or read its data. Keep it bound privately, enable node-to-node TLS and authentication, and firewall it to cluster members only. See the security notes below.
How to check if this port is open
ss -tulpn | grep :9300
nmap -p 9300 <target>netstat -ano | findstr :9300
Test-NetConnection <host> -Port 9300lsof -i :9300
nmap -p 9300 <target>How to open this port on your router
To reach this service from outside your network, forward the port on your router:
- Open your router's admin page (usually http://192.168.1.1 or http://192.168.0.1) and sign in.
- Find the "Port Forwarding" section — it may be called NAT, Virtual Server, or Applications & Gaming.
- Add a rule forwarding external port 9300 to your device's local IP, internal port 9300, protocol TCP.
- Save and reboot the router if prompted, then test the port from outside your network.
Only forward ports you understand — it exposes that device to the public internet. For remote admin access, a VPN is safer than forwarding the port.
Allow this port through the firewall
sudo ufw allow 9300/tcpsudo firewall-cmd --permanent --add-port=9300/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 9300 -j ACCEPTNew-NetFirewallRule -DisplayName "Allow 9300" -Direction Inbound -Protocol TCP -LocalPort 9300 -Action AllowSecurity & risks
Common attacks
- Unauthenticated transport access to query or exfiltrate cluster data
- Rogue nodes joining the cluster to read or manipulate indices
- Version-specific scripting RCE such as the CVE-2015-1427 Groovy era
- Information disclosure of cluster state and indexed documents
Hardening
- Bind transport to a private interface (transport.host); never expose 9300 to the internet
- Enable the security features (authentication and node-to-node TLS)
- Firewall 9300 to cluster members only
- Disable dynamic scripting on legacy versions and patch RCE bugs
- Keep Elasticsearch patched and audit cluster membership
How to block this port
sudo ufw deny 9300/tcpsudo firewall-cmd --permanent --remove-port=9300/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 9300 -j DROPNew-NetFirewallRule -DisplayName "Block 9300" -Direction Inbound -Protocol TCP -LocalPort 9300 -Action Blocknmap snippet
nmap -p9300 --script banner <target>Replace <target> with the host or range you're authorized to scan.
Related ports
Frequently asked questions
- What is the difference between Elasticsearch ports 9200 and 9300?
- 9200 is the HTTP/REST API used by clients, while 9300 is the binary transport protocol used for node-to-node and cluster communication. Both should be bound privately, secured with TLS and authentication, and firewalled.
- Is it safe to expose Elasticsearch transport on port 9300?
- No. Without security, a host reaching 9300 can join the cluster or query data, and legacy versions allowed scripting RCE (CVE-2015-1427). Bind transport privately, enable node-to-node TLS, and firewall the port.