elasticsearch外网IP无法访问

本文介绍如何配置Elasticsearch以便从外网访问,并解决启动问题。通过修改配置文件network.host为0.0.0.0并调整vm.max_map_count参数值,可以有效解决虚拟机中Elasticsearch无法启动的情况。

结果curl "http://127.0.0.1:9200" 能够正常访问,可是使用外网ip就提示拒绝链接

解决办法:vim config/elasticsearch.yml

增加:network.host: 0.0.0.0

重启问题解决

另外,个别虚拟机无法启动ES,查看日志如果有:


解决办法:切换root账户 vim /etc/sysctl.conf

增加一行  vm.max_map_count=655360

接着执行 sysctl -p

切回ES账户重新启动问题解决

备注:如果重启后外网还是不能访问的话,那就需要看一下是不是防火墙的问题,查看下9200端口是否有开放

netstat -anp (查看所有开放的端口),如下图所示,则是有开放了端口


参考:https://blog.youkuaiyun.com/buzaiqq/article/details/67637731

### 配置Elasticsearch以允许部网络访问 为了使Elasticsearch能够被部网络访问,需要对配置文件 `elasticsearch.yml` 进行相应的调整。以下是具体的解决方案: #### 修改配置文件 编辑 `elasticsearch.yml` 文件,可以通过命令 `vim config/elasticsearch.yml` 完成操作[^1]。找到并修改以下参数: ```yaml network.host: 0.0.0.0 ``` 此设置表示 Elasticsearch 将监听所有的网络接口,而不仅仅局限于本地回环地址 (localhost)。 如果希望进一步增强安全性,可以指定特定的 IP 地址代替 `0.0.0.0`,以便仅限于某些网络适配器上的请求处理。 #### 设置跨域支持(可选) 对于需要支持跨域资源共享的应用场景,在同一配置文件中添加如下选项来启用 CORS 功能[^3]: ```yaml http.cors.enabled: true http.cors.allow-origin: "*" ``` 上述配置使得任何源都可以向该服务发起 HTTP 请求;然而生产环境中建议更精确地定义允许的来源列表而非通配符(*)。 #### 权限管理 确保运行 Elasticsearch 的用户拥有足够的权限去读写数据目录及其子目录下的资源。这通常涉及更改这些路径所属组以及所有权的操作: ```bash chown -R elasticsearch:elasticsearch /usr/local/elasticsearch su - elasticsearch ``` 这里假设 `/usr/local/elasticsearch` 是软件安装位置,并切换到名为 'elasticsearch' 的专用账户下执行后续动作[^2]. #### RedHat Linux 下额注意事项 在基于Red Hat发行版操作系统上部署时,除了以上提到的内容之还需要注意解压缩过程中的细节问题。例如当下载的是 `.tar.gz` 压缩包形式分发版本,则需按照下面方式展开档案内容至目标存储空间内: ```bash tar -xzvf elasticsearch-5.0.0.tar.gz -C 解压文件的目标存放目录 ``` 另也要记得查看 JVM 参数设定部分(`jvm.options`)是否有影响远程连接行为的关键项存在[^4]。 完成所有改动之后重启 ElasticSearch 实例生效新的设定即可实现外网正常访问功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值