Port 7000 is Apache Cassandra's inter-node communication port for cluster gossip and data replication. Port 7001 is used when TLS is enabled for inter-node communication. These ports must be accessible between all Cassandra nodes in the cluster but should be blocked from client applications and the public internet.
Port Number
7000
Protocol
TCP
Service
Cassandra Gossip / Inter-node
Range
IANA Registered (1024–49151)
Show gossip state for all known nodes (verify only expected peers)
nodetool gossipinfo | head -30Show active streaming operations (repair, bootstrap data transfers on port 7000)
nodetool netstatsCheck if internode encryption is enabled (should be: internode_encryption: all)
grep 'server_encryption' /etc/cassandra/cassandra.yamlVerify TLS on internode port 7001 (if using encrypted gossip)
openssl s_client -connect peer-node:7001 </dev/null 2>&1 | grep 'Verify'nodetool ring
nodetool gossipinfo
netstat -tlnp | grep 7000Cassandra's gossip protocol was inspired by Amazon's Dynamo paper (2007). Port 7000 was chosen when Cassandra was open-sourced by Facebook in 2008. The gossip protocol uses port 7000 for both gossip state exchange and data streaming (repair, bootstrap). Port 7001 was added later for TLS-encrypted internode communication. Cassandra 4.0 (2021) added full internode messaging encryption and the ability to audit internode traffic.
Should I use port 7000 or 7001 in production?
Use port 7001 (TLS) exclusively. In cassandra.yaml: server_encryption_options: internode_encryption: all, keystore: /path/keystore.jks, truststore: /path/truststore.jks, require_client_auth: true. Then firewall port 7000 closed. This encrypts all inter-node traffic (gossip + streaming) and authenticates peers via certificates. Performance overhead is <5% on modern hardware with AES-NI.
What happens if port 7000 is blocked between Cassandra nodes?
Gossip failure: nodes mark each other as DOWN after phi_convict_threshold is exceeded (~8 seconds default). Reads/writes fail with NoHostAvailableException if RF nodes are unreachable. Repairs fail mid-stream. Eventually, node is removed from the ring (auto_bootstrap). Recovery: unblock the port, node re-gossips and rejoins automatically. Data inconsistency requires nodetool repair after prolonged partitions.