首先是yum安装,如果没有yum请跳转到我搭建yum全过程。
yum -yinstallrabbitmq-server.aarch64
下面是我适配 RabbitMQ 3.7.23 的完整rabbitmq.config配置文件,(端口 8018 + 管理界面 15672),可以直接覆盖原文件即可,避免语法错误。
原配置文件全是注释,不用管他。
第一步:备份原有配置(重要)
先把旧配置备份,防止出错后无法恢复:
cp/etc/rabbitmq/rabbitmq.config /etc/rabbitmq/rabbitmq.config.bak第二步:替换为新配置文件
执行以下命令,直接生成正确的配置文件:
cat>/etc/rabbitmq/rabbitmq.config<<'EOF' [ {rabbit, [ %% 设置AMQP监听端口为8018(替代默认5672) {tcp_listeners, [8018]}, %% 允许所有IP访问(不限制本地) {loopback_users, []}, %% 数据持久化目录(和Docker里的./rabbitmq_data对应) {mnesia_dir, "/root/rabbitmq/rabbitmq_data"} ]}, {rabbitmq_management, [ %% 管理界面监听端口15672 {listener, [{port, 15672}]} ]} ]. EOF第三步:修复配置文件权限
确保 RabbitMQ 进程能读取配置:
chownrabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.configchmod644/etc/rabbitmq/rabbitmq.config第四步:创建数据目录并授权
mkdir-p /root/rabbitmq/rabbitmq_datachown-R rabbitmq:rabbitmq /root/rabbitmq/rabbitmq_data第五步:启用管理插件 + 重启服务
# 启用管理插件(解决15672端口不监听的问题)rabbitmq-pluginsenablerabbitmq_management# 重启RabbitMQ服务使配置生效systemctl restart rabbitmq-server第六步:验证配置是否生效
- 检查服务状态:
systemctl status rabbitmq-server看到active (running)说明服务启动正常。
- 检查端口监听:
ss -tlnp|grepbeam正常会输出:
LISTEN 0 128 0.0.0.0:8018 0.0.0.0:* users:(("beam.smp",pid=xxxx,fd=xx)) LISTEN 0 128 0.0.0.0:25672 0.0.0.0:* users:(("beam.smp",pid=xxxx,fd=xx))- 配置账号:
# 创建adm账号,密码xxxxxxxrabbitmqctl add_user adm xxxxxxx# 设置管理员权限rabbitmqctl set_user_tags adm administrator# 授权访问所有资源rabbitmqctl set_permissions -p / adm".*"".*"".*"# 删除默认guest账号(可选,提升安全)rabbitmqctl delete_user guest下一步操作
- 启用管理插件:
rabbitmq-pluginsenablerabbitmq_management - 重启服务:
systemctl restart rabbitmq-server - 再次检查端口:
正常情况下,你会看到ss -tlnp|grepbeam15672端口也被监听。
我整理了一个一键启用插件+重启服务+验证端口的脚本,直接复制执行就能解决管理界面端口(15672)未监听的问题。
一键执行脚本(复制到终端直接运行)
#!/bin/bash# 1. 启用 RabbitMQ 管理插件echo"=== 启用 RabbitMQ 管理插件 ==="rabbitmq-pluginsenablerabbitmq_management# 2. 重启 RabbitMQ 服务echo-e"\n=== 重启 RabbitMQ 服务 ==="systemctl restart rabbitmq-server# 3. 检查服务状态echo-e"\n=== 检查 RabbitMQ 服务状态 ==="systemctl status rabbitmq-server --no-pager# 4. 检查端口监听情况(重点看 8018 和 15672)echo-e"\n=== 检查端口监听情况 ==="ss -tlnp|grepbeam# 5. 验证管理插件是否加载成功echo-e"\n=== 验证管理插件状态 ==="rabbitmq-plugins list|greprabbitmq_management执行步骤
- 把上面的脚本完整复制到你的服务器终端,按回车执行;
- 执行完成后,重点看这两个关键输出:
ss -tlnp | grep beam里是否出现8018和15672两个端口;rabbitmq-plugins list里rabbitmq_management前面是[E*](表示已启用并加载)。
执行成功的预期效果
如果一切正常,你会看到类似以上截图的输出:
总结
beam.smp是 Erlang 进程名,不是运行用户,真正的运行用户是rabbitmq;- 你的 8018 端口已生效,15672 端口未监听仅因为管理插件未启用;