• 已删除用户
陈永强
陈永强
发布于 2026-07-21 / 1 阅读
0

RabbitMQ 搭建MQTT服务器

RabbitMQ 搭建MQTT服务器

一、RabbitMQ 安装

官网:https://www.rabbitmq.com/

ubuntu 安装脚本,创建 rabbitmq.sh

#!/bin/sh

sudo apt-get install curl gnupg apt-transport-https -y

## Team RabbitMQ's signing key
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null

## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
## Modern Erlang/OTP releases
##
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main

## Latest RabbitMQ releases
##
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main
EOF

## Update package indices
sudo apt-get update -y

## Install Erlang packages
sudo apt-get install -y erlang-base \
                        erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
                        erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
                        erlang-runtime-tools erlang-snmp erlang-ssl \
                        erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl

## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing

编辑安装脚本

cd /usr/local/safeware/rabbitmq
#复制内容到文件中
vim rabbitmq.sh

执行脚本,自动安装所需的环境文件等待即可

bash rabbitmq.sh

查看rabbit是否运行

 systemctl status rabbitmq-server.service 

二、安装管理页插件、MQTT服务器插件、防火墙规则配置

防火墙:开放rabbitmq所需的端口 15672:web管理页 5672:TCP连接端口 1883:MQTT服务器端口

安装rabbitmq管理页面 插件的方式

rabbitmq-plugins enable rabbitmq_management

默认账号/密码 : guest/guest 只能通过localhost 访问

创建可登录的用户并赋予权限

#创建账号密码
rabbitmqctl add_user '用户名'  '密码'
#创建用户标签  management、administrator和none
rabbitmqctl set_user_tags rabbitMq administrator
#设置权限 允许配置,读,写的权限
rabbitmqctl set_permissions -p / rabbitMq ".*" ".*" ".*"

使用创建的账号密码就可以登录到管理页面

安装MQTT 插件,创建MQTT用户

rabbitmq-plugins enable rabbitmq_mqtt

rabbitmqctl add_user 'mqtt_user'  'Cyq147258.'
rabbitmqctl set_user_tags mqtt_user administrator
rabbitmqctl set_permissions -p / mqtt_user ".*" ".*" ".*"

使用MQTTX测试MQTT 连接 ,管理页面能看见mqtt客户端连接

mqtt 的默认端口为1883

修改MQTT默认端口

编辑配置文件 /etc/rabbitmq/rabbitmq.conf,没有的话自己创建即可

#指定mqtt服务器的端口 1883 可以更改为其他指定端口
mqtt.listeners.tcp.default = 1883
#配置web端口和常用的tcp端口连接

# TCP 连接端口配置 
listeners.tcp.default = 5672
# Web 管理端口配置 可以访问web端的ip 本地,公网服务器ip ,局域网IP
management.tcp.ip = 0.0.0.0
management.tcp.port = 15672

# 允许 guest 用户从任何 IP 登录 正式环境不推荐开启
loopback_users.guest = false