<p>Is there a way to tell cassandra to: &quot;listen to the port 7000 for intra node connection but when you try to connect to other cassandra hosts use another port like 443?&quot;</p>
<p>Basically same as Elasticsearch where you have <code>http.port</code> and <code>http.publish_port</code> <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html#http-settings" rel="nofollow noreferrer">Elasticsearch configuration</a></p>
<p>Our scenario is:</p>
<ul>
<li>we have a cassandra cluster deployed in Openshift using the bitnami helm chart</li>
<li>now we want to deploy other cassandra ring/dc in another Openshift cluster</li>
<li>then we want to connect together the 2 cassandra rings deployed in 2 different Openshift clusters</li>
<li>we have a restriction: we have to use an openshift route to expose the traffic outside an openshift cluster, and the openshift route works only on port 443 but I cannot configure the port 443 in docker/cassandra since that is a privileged port</li>
</ul>

<p>Cassandra nodes use the gossip protocol for internode communications and by default uses port <code>7000</code>:</p>
<pre><code>storage_port: 7000
</code></pre>
<p>This port is exclusively used for <strong>private communications</strong> between nodes which is typically configured on a private address/network (<code>listen_address</code>).</p>
<p>Apps/clients use a completely separate port (CQL client port <code>9042</code>) to connect to the cluster which is usually on a completely separate <strong>public network</strong> (<code>rpc_address</code>):</p>
<pre><code>native_transport_port: 9042
</code></pre>
<p>You can configure whatever port you want/need in <code>conf/cassandra.yaml</code>. Cheers!</p>
