Cluster configuration about network hosts ips

To create cluster i put the local loopback address and the ip that need to be connected by the other nodes in place.

Till now what i have done is in yml file : ["",""] apart from this
network.publish_host: [""]
network.bind_host: ["",""] setting also works.

But in this setting elasticsearch binds both the ip address with both the ports 9200 and 9300 and listens to these ports. Now what i want is it should only listens to localhost( in 9200 port and binds the other ip with 9300 port and listens to it and publishes it. It shouldn't bind localhost with 9300 port also. I dont see any requirement for that and it shouldn't bind with the 9200 port. It should be up to me how i want which ip to bind with which port. Why by default with both the ports it is binding.

Port 9200 is for HTTP requests to/from clients, port 9300 is transport protocol which the nodes use for communications in the cluster.

You cannot run on a single port.

Thank you warkolm. But what my question was that i want only http request to only localhost and the other internal ips i want to use only for transport inside the cluster. So i want to bind localhost in 9200 and in other internal ip elasticsearch should bind in 9300 port only. Can i do that. Right now what is happening that......elasticsearch is binding both the ips with 9200 and 9300 port also.

Ahh ok, I misunderstood.

You should be able to do that with What version are you on>

i am using elasticsearch-2.3.3. In that link whatever written i already did that. in bind host place i gave loopback address and another ip and publish host i gave only that ip address. But it was binding both the addresses with both the port numbers. So i don't know what can be done. If you find anything, please reply me back.