前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ElasticSearch公网无法访问的问题

ElasticSearch公网无法访问的问题

原创
作者头像
用户4396583
修改2024-08-20 17:38:36
1250
修改2024-08-20 17:38:36

第一种方法是直接关闭防火墙:

非root用户记得命令前加sudo,没有sudo权限可以vim /etc/sudoers,在root    ALL=(ALL)       ALL下面加上:你的用户名 ALL=(ALL:ALL)   ALL )

代码语言:bash
复制
# 暂时关闭防火墙,重新开机后防火墙还是会启动
systemctl stop firewalld    
 
#看一下防火墙状态是不是dead  
systemctl status firewalld   
 
# 当然你也可以永久关闭防火墙,开机防火墙也不会启动
systemctl disable firewalld 

第二种方法是给elasticsearch的9200端口设置访问权限:

代码语言:bash
复制
# 开启防火墙
systemctl start firewalld    
 
#看一下防火墙状态是不是active(running)
systemctl status firewalld    
 
#永久开放9200端口
firewall-cmd --permanent --zone=public --add-port=9200/tcp    
 
#重启防火墙
firewall-cmd --reload    
 
#测试9200是否开放,yes为开放
sudo firewall-cmd --permanent --query-port=9200/tcp    

第三种方法是在 /etc/elasticsearch/elasticsearch.yml (默认安装位置是这个,具体的elasticsearch.yml文件位置以你自己实际安装情况为准)中修改Elasticsearch的X-Pack安全功能的设置:

代码语言:ini
复制
# --------------------------------------------------------------------------------
 
# Enable security features
xpack.security.enabled: false        (改为false)
 
xpack.security.enrollment.enabled: true
 
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false                     (改为false)
  keystore.path: certs/http.p12
 
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
# Create a new cluster with the current node only
# Additional nodes can still join the cluster later
# cluster.initial_master_nodes: ["iZbp1fo2y5vjf68zt51hpsZ"]
 
# Allow HTTP API connections from anywhere
# Connections are encrypted and require user authentication
http.host: 0.0.0.0
 
# Allow other nodes to join the cluster from anywhere
# Connections are encrypted and mutually authenticated
#transport.host: 0.0.0.0
 
#----------------------- END SECURITY AUTO CONFIGURATION ------------------------
  1. xpack.security.enrollment.enabled: false:这个设置项禁用了自动节点加入集群的安全验证过程。如果设置为true,新加入的节点在加入集群时需要提供有效的证书和密码。
  2. xpack.security.http.ssl::这部分配置是关于HTTP API客户端连接(如Kibana、Logstash和Agents)的SSL/TLS加密设置。
    1. enabled: false:这个设置项禁用了HTTP API客户端连接的SSL/TLS加密。
    2. keystore.path: certs/http.p12:如果启用了SSL/TLS加密,这个设置项指定了包含HTTPS证书和私钥的PKCS12格式的密钥库文件的位置。
  3. xpack.security.transport.ssl::这部分配置是关于集群节点间通信的SSL/TLS加密和相互认证设置。
    1. enabled: false:这个设置项禁用了集群节点间通信的SSL/TLS加密。
    2. verification_mode: certificate:如果启用了SSL/TLS加密,这个设置项指定了节点间通信的证书验证模式。在这个例子中,设置为certificate表示需要进行严格的证书验证。

请注意,这些配置可能会对Elasticsearch的安全性和性能产生影响。在生产环境中,建议启用X-Pack安全功能并正确配置SSL/TLS加密以保护数据的安全和隐私。在调整这些设置时,请确保理解其含义并根据你的具体需求进行配置。

另外看到有人说需要更改network.host: 0.0.0.0为自己的外网ip,这个不需要的哈。0.0.0.0会自动适配你的服务器ip。

在前面三种方法都没办法解决后,我开始思考可能不是服务器自身的问题,而是阿里云的配置问题。因为服务器里 curl 私网ip地址:9200 是能返回响应的,但是curl 公网ip地址:9200是无法返回的。

私网IP地址可以访问:

所以考虑可能是公网ip的端口号没有开放,之前开放的都是私网ip的端口号。云服务器中,私网ip就是你 ifconfig 后服务器返回的ip地址,但是公网ip端口号的管理是需要到云服务器控制页面去操作的。

最后访问公网访问成功!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一种方法是直接关闭防火墙:
  • 第二种方法是给elasticsearch的9200端口设置访问权限:
  • 第三种方法是在 /etc/elasticsearch/elasticsearch.yml (默认安装位置是这个,具体的elasticsearch.yml文件位置以你自己实际安装情况为准)中修改Elasticsearch的X-Pack安全功能的设置:
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档