opencloudos 安装 mosquitto

  1. 更新系统并安装依赖
sudo dnf update -y
sudo dnf install -y epel-release  # 若需要 EPEL 额外仓库
sudo dnf install -y gcc-c++ cmake openssl-devel c-ares-devel libuuid-devel libwebsockets-devel

  1. 安装 Mosquitto
    通过默认仓库安装(推荐)
sudo dnf install -y mosquitto

‌3. 启动服务并设置开机自启

sudo systemctl start mosquitto
sudo systemctl enable mosquitto  # 开机自启

确认 Mosquitto 服务状态

# 确保服务已启动
sudo systemctl status mosquitto

# 查看默认端口(通常为 1883/TCP)
netstat -tuln | grep 1883

MQTT 是应用层协议,可以运行在不同的传输层协议上:
‌TCP‌:默认方式(如 mqtt://,端口 1883)。
‌WebSocket‌:基于 HTTP 升级的 WebSocket 传输(如 ws:// 或 wss://,端口 9001)。

修改监听地址(如需允许外部访问)
编辑配置文件 /etc/mosquitto/mosquitto.conf:

# 允许所有 IP 访问(默认监听 127.0.0.1)
# 默认 MQTT over TCP(端口 1883)
listener 1883 0.0.0.0
# MQTT over WebSocket(端口 7001)
listener 7001 0.0.0.0
protocol websockets

# 允许匿名连接(测试用,生产环境建议关闭)
allow_anonymous true
#password_file /etc/mosquitto/passwd

# 持久化设置(保留消息和状态)
#persistence true
#persistence_file mosquitto.db
#persistence_location /var/lib/mosquitto/
#autosave_interval 300  # 每5分钟自动保存

# 创建密码文件并添加用户(如用户名:myuser)
sudo mosquitto_passwd -c /etc/mosquitto/passwd myuser
# 输入密码后确认

# 限制消息大小(默认无限制)
message_size_limit 1024
max_connections 1000    # 最大客户端连接数
max_queued_messages 100 # 单个客户端最大排队消息数

# 日志输出到文件
log_dest file /var/log/mosquitto/mosquitto.log

生成用户密码文件:
密码文件需对 Mosquitto 进程可读:

sudo chown mosquitto:mosquitto /etc/mosquitto/passwd
sudo chmod 600 /etc/mosquitto/passwd  # 仅允许所有者读写

# 创建用户(首次使用 -c 参数,后续追加用户无需 -c)
sudo mosquitto_passwd -c /etc/mosquitto/passwd user1
# 输入密码后重启服务
sudo systemctl restart mosquitto

重启服务

sudo systemctl restart mosquitto

日志分析

# 实时查看日志
tail -f /var/log/mosquitto/mosquitto.log

带认证的订阅/发布

# 订阅(需用户名密码)
mosquitto_sub -h localhost -t "data" -u kd -P kd

# 发布 QoS=1 的消息
mosquitto_pub -h localhost -t "data" -m "QoS1 Test" -q 1

通信数据存储,使用sqlit3查看

sudo chown mosquitto:mosquitto /var/lib/mosquitto
sudo chmod 600 /var/lib/mosquitto  # 仅允许所有者读写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值