RabbitMQ 搭建MQTT服务器
一、RabbitMQ 安装
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