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
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号