# Can't connect to Kibana from a remote host

**URL:** <https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048>\
**Category:** Kibana\
**Created:** [January 28, 2019, 8:42pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048 "2019-01-28T20:42:44Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![hHelen](https://avatars.discourse-cdn.com/v4/letter/h/7ea924/32.png) [@hHelen](https://discuss.elastic.co/u/hHelen)\
**Post date:** [January 28, 2019, 8:42pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048/1 "2019-01-28T20:42:44Z")

</div>

I recently installed elasticsearch, which seems to be working when I run this command:

`curl -X GET "localhost:9200"` but I can't seem to connect to the server from a remote host even though I have configured it to allow connection from anywhere.

When I run `curl -XGET http://localhost:5601/status -I`  
This is what I get back:  
HTTP/1.1 200 OK  
kbn-name: kibana  
kbn-xpack-sig: b4952e6a4566a9bcc0c7dc2fe4721192  
cache-control: no-cache  
content-type: text/html; charset=utf-8  
content-length: 67382  
accept-ranges: bytes  
connection: close  
Date: Mon, 28 Jan 2019 20:33:06 GMT

`sudo ss -tln | grep 5601`  
`LISTEN 0 128 0.0.0.0:5601 0.0.0.0:*`  
Please see the kibana configuration file below and let me know if there's something I'm missing.

Thanks

`# Kibana is served by a back end server. This setting specifies the port to use.  
#server.port: 5601

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.

# The default is 'localhost', which usually means remote machines will not be able to connect.

# To allow connections from remote users, set this parameter to a non-loopback address.

#server.host: "localhost"  
server.host: "0.0.0.0"

# Enables you to specify a path to mount Kibana at if you are running behind a proxy.

# Use the `server.rewriteBasePath` setting to tell Kibana if it should remove the basePath

# from requests it receives, and to prevent a deprecation warning at startup.

# This setting cannot end in a slash.

#server.basePath: ""

# Specifies whether Kibana should rewrite requests that are prefixed with

# `server.basePath` or require that they are rewritten by your reverse proxy.

# This setting was effectively always `false` before Kibana 6.3 and will

# default to `true` starting in Kibana 7.0.

#server.rewriteBasePath: false

# The maximum payload size in bytes for incoming server requests.

#server.maxPayloadBytes: 1048576

# The Kibana server's name. This is used for display purposes.

#server.name: "your-hostname"

# The URL of the Elasticsearch instance to use for all your queries.

#elasticsearch.url: "[http://localhost:9200](http://localhost:9200)  
#[http://127.0.0.1:9200](http://127.0.0.1:9200)

# When this setting's value is true Kibana uses the hostname specified in the server.host

# setting. When the value of this setting is false, Kibana uses the hostname of the host

# that connects to this Kibana instance.

#elasticsearch.preserveHost: true

# Kibana uses an index in Elasticsearch to store saved searches, visualizations and

# dashboards. Kibana creates a new index if the index doesn't already exist.

#kibana.index: ".kibana"

# The default application to load.

#kibana.defaultAppId: "home"

# If your Elasticsearch is protected with basic authentication, these settings provide

# the username and password that the Kibana server uses to perform maintenance on the Kibana

# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which

# is proxied through the Kibana server.

#elasticsearch.username: "user"  
#elasticsearch.password: "pass"

# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.

# These settings enable SSL for outgoing requests from the Kibana server to the browser.

#server.ssl.enabled: false  
#server.ssl.certificate: /path/to/your/server.crt  
#server.ssl.key: /path/to/your/server.key

# Optional settings that provide the paths to the PEM-format SSL certificate and key files.

# These files validate that your Elasticsearch backend uses the same key files.

#elasticsearch.ssl.certificate: /path/to/your/client.crt  
#elasticsearch.ssl.key: /path/to/your/client.key

# Optional setting that enables you to specify a path to the PEM file for the certificate

#server.ssl.certificate: /path/to/your/server.crt  
#server.ssl.key: /path/to/your/server.key

# Optional settings that provide the paths to the PEM-format SSL certificate and key files.

# These files validate that your Elasticsearch backend uses the same key files.

#elasticsearch.ssl.certificate: /path/to/your/client.crt  
#elasticsearch.ssl.key: /path/to/your/client.key

# Optional setting that enables you to specify a path to the PEM file for the certificate

# authority for your Elasticsearch instance.

#elasticsearch.ssl.certificateAuthorities: ["/path/to/your/CA.pem"]

# To disregard the validity of SSL certificates, change this setting's value to 'none'.

#elasticsearch.ssl.verificationMode: full

# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of

# the elasticsearch.requestTimeout setting.

#elasticsearch.pingTimeout: 1500

# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value

# must be a positive integer.

#elasticsearch.requestTimeout: 30000

# List of Kibana client-side headers to send to Elasticsearch. To send _no_ client-side

# headers, set this value to (an empty list).

#elasticsearch.requestHeadersWhitelist: [authorization]

# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten

# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.

#elasticsearch.customHeaders: {}

# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.

#elasticsearch.shardTimeout: 30000

# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.

#elasticsearch.startupTimeout: 5000

# Logs queries sent to Elasticsearch. Requires logging.verbose set to true.

#elasticsearch.logQueries: false

# Specifies the path where Kibana creates the process ID file.

#pid.file: /var/run/kibana.pid

# Enables you specify a file where Kibana stores log output.

#logging.dest: stdout

# Set the value of this setting to true to suppress all logging output.

#logging.silent: false

# Set the value of this setting to true to suppress all logging output other than error messages.

#logging.quiet: false

# Set the value of this setting to true to log all events, including system usage information

# and all requests.

#logging.verbose: false

# Set the interval in milliseconds to sample system and process performance

# metrics. Minimum is 100ms. Defaults to 5000.

#ops.interval: 5000

# Specifies locale to be used for all localizable strings, dates and number formats.

#i18n.locale: "en"`

---

<div class="post-metadata">

**Author:** ![Larry\_Gregory](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/larry_gregory/32/34969_2.png) [@Larry\_Gregory](https://discuss.elastic.co/u/Larry_Gregory)\
**Post date:** [January 28, 2019, 9:01pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048/2 "2019-01-28T21:01:26Z")

</div>

Hi @hHelen,

What does curl report when trying to connect from a remote host? Can you paste the results when you run curl with the `-v` flag?

Your configuration looks ok to me. Could there be a firewall or port forward issue? Do you have Kibana behind a reverse proxy?

---

<div class="post-metadata">

**Author:** ![hHelen](https://avatars.discourse-cdn.com/v4/letter/h/7ea924/32.png) [@hHelen](https://discuss.elastic.co/u/hHelen)\
**Post date:** [January 28, 2019, 9:14pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048/3 "2019-01-28T21:14:56Z")

</div>

Sorry, do you mean something like this?  
`curl -XGET http://localhost:5601/status -I -v`

---

<div class="post-metadata">

**Author:** ![Larry\_Gregory](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/larry_gregory/32/34969_2.png) [@Larry\_Gregory](https://discuss.elastic.co/u/Larry_Gregory)\
**Post date:** [January 28, 2019, 9:16pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048/4 "2019-01-28T21:16:36Z")

</div>

Yes, but running from the remote host instead. So something like:

`curl http://host-running-kibana:5601/status -v`

---

<div class="post-metadata">

**Author:** ![hHelen](https://avatars.discourse-cdn.com/v4/letter/h/7ea924/32.png) [@hHelen](https://discuss.elastic.co/u/hHelen)\
**Post date:** [January 28, 2019, 9:22pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048/5 "2019-01-28T21:22:33Z")

</div>

Here is the output of the connection

`curl -XGET http://remote ip:5601/status -v`

- Trying remote ip...
- connect to remote ip port 5601 failed: Connection timed out
- Failed to connect to remote ip port 5601: Connection timed out
- Closing connection 0  
curl: (7) Failed to connect to remote ip port 5601: Connection timed out

---

<div class="post-metadata">

**Author:** ![hHelen](https://avatars.discourse-cdn.com/v4/letter/h/7ea924/32.png) [@hHelen](https://discuss.elastic.co/u/hHelen)\
**Post date:** [February 1, 2019, 4:50pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048/6 "2019-02-01T16:50:29Z")

</div>

Fixed. This was due to the security placed on the server that stopped all external traffic from hitting the server.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 1, 2019, 4:50pm UTC](https://discuss.elastic.co/t/cant-connect-to-kibana-from-a-remote-host/166048/7 "2019-03-01T16:50:34Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
