28017 是什么
28017 是 MongoDB 3.6 之前开启 HTTP 接口时使用的状态页端口,取值等于数据库端口加 1000。它提供网页形式的状态查看与简易查询能力,早期运维常用它观察实例状态。MongoDB 3.6 起该接口被正式移除,官方建议改用监控工具与专业监控系统,因此扫描报告里出现 28017,基本意味着存在很老的实例。
基本信息
| 服务名 | MongoDB 旧版 HTTP 状态接口 |
|---|---|
| 协议 | TCP/HTTP |
| 端口规则 | 数据库端口加 1000 |
| 默认数据库端口 | 27017 |
| 移除版本 | 3.6 起不再提供 |
| 替代方式 | 监控代理与专业监控系统 |
典型使用场景
- 老实例识别:用该端口作为版本偏旧的判断依据
- 迁移评估:确认老实例的业务归属并规划升级
- 暴露面收敛:状态页在未授权访问下的信息泄露风险
- 排障方式替换:用现代监控手段替代网页状态查看
- 合规核查:确认数据库端口与状态页都未暴露到公网
- 指标留存:把关键指标接入监控,保留趋势数据
核对与替代手段
核对与替代手段
ss -lntp 'sport = :28017' # 确认本机是否监听
curl -s http://host:28017/ | head -c 200 # 授权范围内查看响应
mongod --version # 先确认实例版本再决定处置方式
# 现代替代: mongostat 与 mongotop 按固定间隔输出指标
mongostat --uri 'mongodb://user@host:27017' 5
mongotop --uri 'mongodb://user@host:27017' 5排查判定参考
| 检查项 | 方法 | 判读要点 |
|---|---|---|
| 版本判断 | 查看实例版本 | 出现该端口通常说明版本早于 3.6 |
| 监听地址 | 确认是否绑定公网地址 | 绑定公网且无认证属严重风险 |
| 认证状态 | 核对用户与权限配置 | 早期实例常未启用认证 |
| 处置动作 | 升级或限制访问 | 缺少补丁支持的老版本应尽快迁移 |
端口加 1000 是这一代 MongoDB 的习惯做法:数据库端口改过之后,状态页端口会随之变化。遇到不认识的二万段端口时,可以按这个规律反推来源。
旧版状态页会把实例拓扑、主机名与运行指标直接呈现给访问者。公网可达时相当于免费提供侦察信息,必须优先收敛访问范围。