Port 9997 is the default Splunk receiving port where indexers accept data from Universal and Heavy Forwarders. Forwarders send compressed, encrypted log data to indexers on port 9997. This is a data ingestion port – it does not provide administrative access but carries all forwarded log data.
Port Number
9997
Protocol
TCP
Service
Splunk Forwarding (Receiving)
Range
IANA Registered (1024–49151)
Show configured forwarder-to-indexer connections and their status
splunk list forward-serverVerify the Splunk indexer is listening and confirm the process
ss -tlnp sport = :9997Check recent forwarder connections and data receipt
splunk search 'index=_internal sourcetype=splunkd component=TcpInputProc' -earliest=-15mVerify TLS is active on the receiving port
openssl s_client -connect indexer:9997outputs.conf: [tcpout] server=indexer:9997
inputs.conf: [splunktcp://9997] (on indexer)
splunk list forward-server (shows forwarder->indexer connections)Splunk chose port 9997 as the default receiving port in Splunk 4.x (2009) to avoid conflicts with its management port (8089) and web UI (8000). The Splunk-to-Splunk protocol is proprietary binary – compressed, optionally encrypted, with built-in acknowledgment for reliable delivery. The port has remained the de facto standard across all Splunk deployment architectures.
How do I enable TLS between Splunk forwarders and indexers?
On the indexer: set sslCertPath, sslPassword, and requireClientCert=true in inputs.conf under [splunktcp-ssl:9997]. On each forwarder: set sslCertPath, sslRootCAPath, and sslPassword in outputs.conf under [tcpout]. Both sides need certs signed by the same CA. Restart both after changes.
Can an attacker inject false logs into Splunk via port 9997?
Yes, if the port accepts unauthenticated connections (the default without TLS client certs). An attacker on the same network can speak the Splunk forwarding protocol and inject events into any index the receiving port is configured to accept. Enable requireClientCert to prevent this.