阿里云服务器上部署Mosquitto
测试的话,这边用的是MQTTX客户端,方便可视化调试。
以下是具体步骤
一,打开阿里云的宝塔面板终端
1,使用 apt 命令安装
更新软件包列表
首先,确保本地的软件包列表是最新的。
sudo apt update
2,安装 Mosquitto
这条命令会安装 Mosquitto 服务器(broker)以及有用的客户端工具(mosquitto_pub 和 mosquitto_sub)。
sudo apt install mosquitto mosquitto-clients
3,验证服务是否运行
systemctl status mosquitto
如果看到 active (running) 的字样,说明 Mosquitto 已经在后台正常运行了
二,安装后的关键配置
(1),对Mosquitto本身进行配置
1,创建一个配置文件来让 Mosquitto 监听所有网络接口
创建配置文件
sudo nano /etc/mosquitto/conf.d/local.conf
2,输入配置内容
在空白的编辑器中输入以下内容:
# MQTT 监听器配置
listener 1883 0.0.0.0
allow_anonymous true# WebSocket 支持(可选)
listener 9001 0.0.0.0
protocol websockets# 日志设置
log_type error
log_type warning
log_type notice
log_type information
按 Ctrl + O (Write Out) - 保存文件
按 Enter - 确认文件名
按 Ctrl + X - 退出编辑器
验证配置文件
cat /etc/mosquitto/conf.d/local.conf
3, 重启 Mosquitto 服务
sudo systemctl restart mosquitto
检查状态
sudo systemctl status mosquitto
按q可以退出
检查监听状态
sudo netstat -tlnp | grep 1883
如果看到 0.0.0.0:1883
那就说明成功!
(2),配置阿里云安全组(至关重要!)
* 在 安全组 标签页,点击 配置规则。
* 点击 手动添加 或 快速添加(如果可用),添加一条入方向规则:* 授权策略:允许* 协议类型:自定义 TCP* 端口范围:1883/1883* 授权对象:0.0.0.0/0 (表示允许所有IP访问。出于安全考虑,在生产环境中建议设置为您自己的客户端IP或网段)。
(3),防火墙也要开放
检查
sudo ufw status
没有1883就要加上去
sudo ufw allow 1883
验证规则
sudo ufw status | grep 1883
为什么会有2层防护
* 安全组的作用:
* 第一道防线,过滤恶意流量
* 控制哪些IP可以访问服务器
* 防止DDoS攻击等
* 系统防火墙的作用:
* 第二道防线,精细化控制
* 控制服务器内部服务访问
* 防止已入侵的服务进一步扩散*
* 双重防护策略:
* 安全组: 粗粒度控制(允许/拒绝整个端口)
* 系统防火墙: 细粒度控制(允许/拒绝特定服务)
* 这样即使安全组被误配置,系统防火墙还能提供额外保护。
*
* 想象你的房子:
* 安全组 = 小区门卫(控制谁能进小区)
* 系统防火墙 = 家门锁(控制谁能进你家)
* 门卫让你进小区,但你还得用钥匙开家门!
三,MQTTX连接测试
新建连接
连接参数:
Host: 你自己的服务器IP
Port: 1883
Protocol: MQTT
Client ID: 自动生成或自定义
Username: 可先留空
Password: 可先留空
Keep Alive: 60
Clean Start: true
MQTT版本选择3.11或者3.1,兼容性好一点
链接超时改60秒
下面就可以愉快地玩耍啦