ActiveMQ STOMP 端口
ActiveMQ Classic 的 STOMP 协议默认端口:为轻量客户端提供跨语言消息收发,SSL 版本为 61614,核心的 OpenWire 主口是 61616,管理台通常在 8161。STOMP 是文本协议,用起来方便,也因此更需要认证与加密。
基本信息
| 服务 | ActiveMQ STOMP |
|---|---|
| 协议 | TCP(STOMP 文本协议) |
| 默认端口 | 61613(SSL 61614、OpenWire 61616、管理台 8161) |
| 认证 | broker 用户体系,默认账号必须改 |
| 暴露面 | 仅应用网段,建议走 SSL |
典型使用场景
- 脚本语言(Python/JS 等)接入消息队列
- 轻量客户端不需要完整 JMS 实现
- 联调与压测:用文本协议快速构造消息
- 验证消息路由:检查队列与主题的消费情况
- 异构系统对接时的协议选型
监听与连接核对
监听与连接核对
ss -lntp | grep -E '6161[34]|8161'
# broker 连接器配置示例:
# <transportConnector name="stomp" uri="stomp://0.0.0.0:61613"/>
# 生产建议改用 61614(STOMP over SSL)并校验证书排障与核对
| 检查项 | 做法 | 异常表现 |
|---|---|---|
| 监听 | ss -lntp | grep 61613 | 监听 0.0.0.0 且业务网可达:同网段可收发消息 |
| 认证 | broker 用户配置与默认账号 | 仍是默认口令:任何人都能连 |
| 加密 | 61614 是否启用与证书配置 | 只用 61613:消息与凭据明文传输 |
| 管理台 | 8161 的访问范围 | 管理台与业务口同网段开放:变更无审计 |
ActiveMQ 的默认管理账号是公开知识,装完不改造等于把消息中间件放到网络上任人尝试;生产环境必须改口令、限制来源,并让应用侧改用 SSL 端口。
文本协议的便利与代价
STOMP 用文本帧交互,抓包可读、调试方便;这也意味着未加密链路上的消息内容与口令对外可见。用它做跨语言接入时,认证与 TLS 不是可选项,尤其是在同网段还有大量其他主机的环境里。
老版本 ActiveMQ 出过多个远程利用漏洞,部分与特定协议端口相关;及时升级,并关闭不使用的协议连接器(例如只用 AMQP 就关掉 STOMP),能显著收窄攻击面。
默认账号加明文 STOMP:同网段任何人都能旁听或伪造业务消息。
迁移到 SSL 端口时先确认客户端库支持 amqps 与证书校验,再切换端口;只改端口不改信任配置,表现会是连接被拒而不是自动回退到明文。