8761 是什么
Eureka 是微服务架构中常用的服务注册与发现组件,Spring Cloud 项目里 Eureka Server 默认监听 8761。客户端启动后把自己注册上来,并从注册表拉取其他服务的实例地址;控制台首页就挂在根路径下,访问 http://host:8761/ 能看到全部已注册实例、状态与最近续约时间。
无鉴权带来的真实风险
不加 Spring Security 的 Eureka Server 允许任何人访问注册表接口,甚至用同样的应用名注册一个伪造实例,把一部分流量引到攻击者控制的节点;控制台还会把各实例的内网地址与端口完整列出,等于一份自动维护的资产清单。
基本信息
| 服务 | Eureka Server(Spring Cloud / Netflix) |
|---|---|
| 协议 | TCP/HTTP 8761 |
| 用途 | 服务注册与发现 |
| 注册表接口 | /eureka/apps(JSON 或 XML) |
| 安全等级 | 仅微服务网段,控制台应加鉴权 |
典型使用场景
- 微服务上线后确认实例是否注册成功、状态是否为 UP
- 排查调用方拿不到地址时对照注册表与最近的续约时间
- 灰度发布时观察新旧实例共存与流量分布情况
- 注册中心迁移后核对客户端的 defaultZone 配置
- 安全核查时确认控制台与注册表接口是否暴露到非业务网段
注册表与连通性检查
注册表与连通性检查
curl -s http://eureka:8761/eureka/apps -H 'Accept: application/json' | head -c 400
curl -s -o /dev/null -w '%{http_code}\n' http://eureka:8761/ # 控制台可达性
ss -lntp | grep 8761客户端侧配置
客户端侧配置
# application.yml(客户端)
# eureka:
# client:
# service-url:
# defaultZone: http://eureka:8761/eureka/
# instance:
# prefer-ip-address: true
# lease-renewal-interval-in-seconds: 30常见现象与原因
| 现象 | 常见原因 | 处理方向 |
|---|---|---|
| 实例不出现在列表 | 客户端连不上 8761 或注册被拒 | 先看网络与 defaultZone |
| 状态长期 DOWN | 健康检查端点不可达 | 修好健康检查再确认状态 |
| 出现重复实例 | 实例标识冲突或剔除延迟 | 核对 instance 标识与剔除周期 |
Eureka 有自我保护机制:心跳丢失比例超过阈值时会暂停剔除实例,注册表里出现「僵尸实例」属于设计行为,判断服务是否真的可用要结合客户端负载均衡的实际调用结果。
控制台与注册表接口默认无鉴权,暴露在办公网或公网会导致实例清单泄露与伪造注册;生产应叠加 Spring Security 或用网关做访问控制。