赞
踩
因工作的需要,要使用elasticsearch,安装完了,启动也成功了之后,发现公网无法访问elasticsearch的服务,于是开始在CSDN里四处寻找问题原因。我自己是使用的阿里云服务器,系统是cento7。
(非root用户记得命令前加sudo,没有sudo权限可以vim /etc/sudoers,在root ALL=(ALL) ALL下面加上:你的用户名 ALL=(ALL:ALL) ALL )
- # 暂时关闭防火墙,重新开机后防火墙还是会启动
- systemctl stop firewalld
-
- #看一下防火墙状态是不是dead
- systemctl status firewalld
-
- # 当然你也可以永久关闭防火墙,开机防火墙也不会启动
- systemctl disable firewalld
- # 开启防火墙
- 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
- # --------------------------------------------------------------------------------
-
- # 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 -------------------------
xpack.security.enabled: false
:这个设置项禁用了Elasticsearch的X-Pack安全功能。如果设置为true
,Elasticsearch将启用用户认证、角色权限管理、HTTPS加密等安全特性。
xpack.security.enrollment.enabled: false
:这个设置项禁用了自动节点加入集群的安全验证过程。如果设置为true
,新加入的节点在加入集群时需要提供有效的证书和密码。
xpack.security.http.ssl:
:这部分配置是关于HTTP API客户端连接(如Kibana、Logstash和Agents)的SSL/TLS加密设置。
enabled: false
:这个设置项禁用了HTTP API客户端连接的SSL/TLS加密。keystore.path: certs/http.p12
:如果启用了SSL/TLS加密,这个设置项指定了包含HTTPS证书和私钥的PKCS12格式的密钥库文件的位置。xpack.security.transport.ssl:
:这部分配置是关于集群节点间通信的SSL/TLS加密和相互认证设置。
enabled: false
:这个设置项禁用了集群节点间通信的SSL/TLS加密。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端口号的管理是需要到云服务器控制页面去操作的。
于是进入阿里云的云服务器管理控制台,尝试去寻找答案。
https://ecs.console.aliyun.com/ 阿里云ECS云服务器管理网址
1、点击实例
2、点击更多-网络和安全组-安全组配置
3、点击服务器实例名称
4、点击手动添加,添加公网允许的端口
5、我为了省事直接把所有的端口号都加上了(1/65535)
6、最后访问公网访问成功!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。