Connect to Elasticsearch from a different machine

IMPORTANT: Making this application’s network ports public is a significant security risk. You are strongly advised to only allow access to those ports from trusted networks. If, for development purposes, you need to access from outside of a trusted network, please do not allow access to those ports via a public IP address. Instead, use a secure channel such as a VPN or an SSH tunnel. Follow these instructions to remotely connect safely and reliably.

Connect from the same network

To connect to Elasticsearch from a different machine in the same network, use a command like the one below:

$ curl -XGET 'SERVER-IP:9200/'

Connect from a different network

If you must connect to the application from a machine that is not running in the same network as the Elasticsearch cluster, you can follow these approaches (these are shown in order of preference, from the most secure to the less recommended solution):

  • Option 1: Peer both virtual networks to secure the connections between the two instances. Check the following guide to learn how to connect instances in different networks using network peering.
  • Option 2: Create an SSH tunnel to connect to the application using the public IP address. Refer to the FAQ for more information on this.

    NOTE: You should only access using an SSH tunnel if you wish to temporarily connect to, or use, the Elasticsearch console. This approach is not recommended to permanently connect your application to the Elasticsearch cluster, as a connectivity failure in the SSH tunnel would affect your application’s functionality.

  • Option 3: Make the server publicly accessible and restrict access to a trusted list of source IP addresses using firewall rules. Refer to the FAQ for information on opening ports in the server firewall.

Last modification October 1, 2018