MQTT-mosquitto

安装

sudo apt install mosquitto mosquitto-clients

安装完成后,直接运行mosquitto显示

bash: mosquitto: 未找到命令

按照AI说明
``bash
sudo find /usr -name "mosquitto*" -type f -executable 2>/dev/null
/usr/bin/mosquitto_rr
/usr/bin/mosquitto_pub
/usr/bin/mosquitto_passwd
/usr/bin/mosquitto_ctrl
/usr/bin/mosquitto_sub
/usr/sbin/mosquitto

找到可执行文件在`/usr/sbin/mosquitto`
再通过查看主配置文件
```bash
sudo cat /etc/mosquitto/mosquitto.conf
# Place your local configuration in /etc/mosquitto/conf.d/
...
include_dir /etc/mosquitto/conf.d

查到自定义配置存放在/etc/mosquitto/conf.d/路径下
在 conf.d 目录下创建一个新配置文件,启用 WebSocket

sudo nano /etc/mosquitto/conf.d/websockets.conf

复制

# 启用 WebSocket 支持
listener 9001
protocol websockets

# 可选:也保留 TCP 支持(非必须)
listener 1883

重启 Mosquitto 服务

sudo systemctl restart mosquitto

查看状态

sudo systemctl status mosquitto

确认端口监听

ss -tuln | grep 9001
tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN

订阅主题测试

mosquitto_sub -h localhost -p 1883 -t 'test/topic'

再开个终端发布消息

mosquitto_pub -h localhost -p 1883 -t 'test/topic' -m 'Hello from MQTT!'
=============

连接被拒

mosquitto_sub -h localhost -p 1883 -t 'test/topic'
Connection error: Connection Refused: not authorised.

设置允许匿名连接(已测试)
配置文件

sudo nano /etc/mosquitto/conf.d/anonymous.conf

添加内容

# 允许匿名访问(仅用于测试)
allow_anonymous true

重启服务

sudo systemctl restart mosquitto

启用用户名密码认证(未测试)

sudo mosquitto_passwd -c /etc/mosquitto/passwd youruser

创建认证配置

sudo nano /etc/mosquitto/conf.d/auth.conf

内容

allow_anonymous false
password_file /etc/mosquitto/passwd

重启服务

sudo systemctl restart mosquitto

测试

mosquitto_sub -h localhost -p 1883 -t 'test/topic' -u youruser -P yourpassword
posted @ 2025-08-02 14:56  科里布  阅读(28)  评论(0)    收藏  举报