Remote TransportClient with Transport profile : GRAVE: NoNodeAvailableException


I have a test serveur with several IP : an internal and a VPN

Elasticsearch used to run on the VPN one while we were in development, but now I have
to secure it for the production env.

After testing lot of configurations, that's what I have :

publish/bind localhost (
transport.tcp.port: 9300

publish/bind VPN for the plugin Head (

http.port: 9200

publish/bind internal IP for internal communication (

transport.profiles.client.port: 9300

publish/bind VPN IP for remote DEV (

transport.profiles.dmz.port: 9300

Everything starts well :

[2016-03-25 09:14:13,979][INFO ][transport                ] [es-dev-node-integration] publish_address {}, bound_addresses {}
[2016-03-25 09:14:13,980][INFO ][transport                ] [es-dev-node-integration] profile [dmz]: publish_address {}, bound_addresses {}
[2016-03-25 09:14:13,980][INFO ][transport                ] [es-dev-node-integration] profile [client]: publish_address {}, bound_addresses {}
[2016-03-25 09:14:17,011][INFO ][http                     ] [es-dev-node-integration] publish_address {}, bound_addresses {}

Everything is OK, I can connect to the HTTP head plugin, internal communication works well on 10.*.
BUT, remote connections with TransportClient from a VPN PC failed with :

GRAVE: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{}{}]]
    at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(
    at org.elasticsearch.client.transport.TransportClientNodesService.execute(
    at org.elasticsearch.client.transport.TransportClient.doExecute(
    at org.elasticsearch.action.ActionRequestBuilder.execute(
    at org.elasticsearch.action.ActionRequestBuilder.execute(

Before, this configuration, the same code, connected to the VPN IP was not a problem. There
is something wrong with the "Transport profile" from a remove IP. The same code on the
machin works ... Is there something special in remote with a profile ?


After reading this doc :
I finaly set "client.transport.sniff" to "false". I don't know why, but it's works... I'm not shure it"s the good configuration but it's ok like that...