当前位置: 首页 > web >正文

EasySearch 服务昨天还好好的,为什么今天突然访问不了了?

在使用 EasySearch 搭建本地或云端搜索服务时,难免会遇到服务偶发性或持续性无法访问的问题。本文将从服务状态、端口监听、网络配置、安全组等五个维度,系统梳理排查思路,帮助大家快速定位并解决访问失败的原因。


🚢 一、Docker 部署场景下的排查方法

如果你是通过官方的 Docker Compose 部署 EasySearch,一般不会出现太大问题。但如果你像我一样在群晖或 NAS 上做过自定义配置,以下通用排查方法可以帮助你快速定位问题:

示例 Docker Compose 配置

version: "3"
services:easysearch-node1:user: "602:602"image: infinilabs/easysearch:1.11.1-2000container_name: easysearch-node1hostname: easysearch-node1environment:- "ES_JAVA_OPTS=-Xms1g -Xmx1g"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536volumes:- $PWD/ezs1/config:/app/easysearch/config- $PWD/ezs1/data:/app/easysearch/data- $PWD/ezs1/logs:/app/easysearch/logsports:- 9201:9200- 9301:9300networks:- esneteasysearch-node2:user: "602:602"image: infinilabs/easysearch:1.11.1-2000container_name: easysearch-node2hostname: easysearch-node2environment:- "ES_JAVA_OPTS=-Xms1g -Xmx1g"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536volumes:- $PWD/ezs2/config:/app/easysearch/config- $PWD/ezs2/data:/app/easysearch/data- $PWD/ezs2/logs:/app/easysearch/logsports:- 9202:9200- 9302:9300networks:- esnetconsole:image: infinilabs/console:1.29.1-2000container_name: consolehostname: consolevolumes:- $PWD/console/data:/data- $PWD/console/log:/lognetworks:- esnetports:- 9000:9000links:- easysearch-node1:es1- easysearch-node2:es2environment:- TZ=Asia/Shanghainetworks:esnet:driver: bridgeipam:config:- subnet: 172.24.0.0/16

1️⃣ 容器是否正常运行?

docker ps -a | grep easysearch

若容器状态为 Exited,说明启动失败。请查看容器日志进一步排查:

docker logs <容器名>

如果你看到了如下错误信息,而你使用的是自签证书,可以暂时忽略:

javax.net.ssl.SSLHandshakeException: Empty client certificate chain
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown

2️⃣ 容器是否监听端口?

进入容器内部查看:

docker exec -it <容器名> bash
netstat -tlnp

期望看到监听地址为 0.0.0.0:92000.0.0.0:9300,说明服务对外暴露成功。例如:

tcp   0   0 0.0.0.0:9200   0.0.0.0:*   LISTEN   7/java
tcp   0   0 0.0.0.0:9300   0.0.0.0:*   LISTEN   7/java

3️⃣ Docker 端口映射是否配置正确?

检查 docker-compose.ymlports 映射是否正确,或者用以下命令查看实际映射情况:

docker ps

确认是否已将容器内部端口映射到宿主机。

宿主机上也可以通过 netstatss 命令查看端口监听:

netstat -tlnp | grep 9200

确保监听地址是 0.0.0.0:9200,而非 127.0.0.1

  • -t:显示 TCP 连接
  • -l:仅显示监听状态(Listening)的端口
  • -n:以数字方式显示地址和端口(避免 DNS 解析)
  • -p:显示监听端口的程序 PID 和名称

4️⃣ 网络配置是否连通?

使用 curl 测试:

curl http://yourhost:9200

如需远程访问,需确认:

  • 容器监听的是 0.0.0.0
  • 映射端口已开放
  • 网络桥接配置正常

🧩 二、非 Docker 部署场景的排查方法

1️⃣ 服务是否启动?

ps aux | grep easysearch

也可查看 nohup.out 或 logs 目录中的日志文件,看是否存在环境变量、路径错误、权限不足等问题。


2️⃣ 是否监听了正确的地址?

netstat -tulnp | grep java

EasySearch 默认只监听本地,建议修改配置文件:

# config/easysearch.yml
network.host: 0.0.0.0
http.port: 9200

3️⃣ 防火墙是否放行?

确认 Linux 主机的防火墙设置:

sudo ufw status
sudo iptables -L -n

确保目标端口(如 9200、9300)已允许外部访问。


🌐 三、通用排查项(适用于所有部署方式)

✅ 云服务器:检查安全组

云服务商(如 AWS、阿里云)通常还需配置安全组或防火墙规则,确保目标端口对外开放。

✅ DNS 设置是否正确

使用 digping 测试域名解析与连通性:

dig +short yourdomain.com
ping yourdomain.com

可用 traceroute 进一步分析路径:(我在MacOS下测试的)

sudo traceroute -P TCP -p 9200 192.168.X.X        traceroute to 192.168.X.X (192.168.X.X), 64 hops max, 40 byte packets1  192.168.X.X (192.168.X.X)  3.756 ms  3.208 ms  3.142 ms

✅ 总结:排查 EasySearch 的四步法

1. 服务是否启动?
2. 端口是否监听?
3. 网络是否打通?
4. 安全组是否放行?

无论是本地部署还是云端部署,掌握上述排查方法,你就能迅速定位并解决 EasySearch 无法访问的问题。
如果你觉得有帮助,也欢迎你将本文加入收藏夹,或转发给其他使用 EasySearch 的小伙伴 👇

http://www.xdnf.cn/news/1390.html

相关文章:

  • 安卓14默认赋予应用权限
  • 克拉屈滨联合阿糖胞苷与米托蒽醌(CLAM方案)
  • 基于ARM+FPGA+DSP的储能协调控制器解决方案,支持国产化
  • 视频智能分析平台EasyCVR无线监控:全流程安装指南与功能应用解析
  • Python 流程控制
  • radare2 入门与反汇编
  • Linux实现网络计数器
  • VS中回显109:对‘pthread_create’未定义的引用
  • HCIP-H12-821 核心知识梳理 (6)
  • 黑马Java基础笔记-3
  • 提高Spring Boot开发效率的实践
  • 算法题-图论
  • Linux进程状态及转换关系
  • webrtc建立连接的过程
  • UML 顺序图:电子图书馆管理系统的交互之道
  • RocketMQ 核心架构速览
  • 45、子类需要重写父类的构造函数嘛,子类自己的构造函数呢?
  • Git技术详解:从核心原理到实际应用
  • 示波器探头干扰致晶振停振的机理与工程对策
  • 三星One UI安全漏洞:剪贴板数据明文存储且永不过期
  • CSS清楚默认样式
  • APK安装失败,提示-13的错误
  • 解耦旧系统的利器:Java 中的适配器模式(Adapter Pattern)实战解析
  • CSS 选择器介绍
  • 【Java学习笔记】random的使用
  • 软件测试之功能测试详解
  • 从零到精通:探索GoFrame框架中gcron的定时任务之道 —— 优势、实践与踩坑经验
  • STM32F103 单片机(基于 ARM Cortex-M3 内核)的启动过程涉及硬件初始化、固件配置和程序执行流程。
  • 【计算机视觉】CV项目实战- Florence-SAM 多模态视觉目标检测+图像分割
  • Java_day30-35