一、mosquitto的下载及安装
1.切换到root模式
su - root
2.安装mosquitto服务器和客户端
(1)引入mosquitto仓库并更新
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
(2)更新依赖
sudo apt-get update
(3)安装mosquitto
sudo apt-get install mosquitto
(4)安装mosquitto开发包
sudo apt-gett install mosquitto
(5)安装mosquitto客户端
sudo apt-get install mosquitto-clients
3.安装完成后
(1)使用以下命令开启并检测mosquitto服务器状态
sudo service mosquitto start
sudo service mosquitto status
(2)其余配置可以参考其他博主的博客
MQTT学习笔记(mosquitto配置)
Ubuntu环境下Mosquitto服务器安装与简单使用
搭建MQTT测试环境(一): ubuntu安装MQTT服务器 + windows安装MQTT客户端
Linux篇 ubuntu安装MQTT服务器并解决只能在localhost下的通讯问题
二、我踩的坑
1.当使用windows安装的MQTTfx测试时发现连接不上Linux上的mosquitto服务器
2.排查各种原因后发现是Ubuntu上的mosquitto服务器是 local only mode
,当使用sudo service mosquitto start
,再使用sudo service mosquitto status
是查看不到当前服务器是运行在哪种模式下的,当使用mosquitto -v
这个命令时可以看到下图现象
看了很多博主的解决方案,有在/etc/mosquitto/conf.d
中新建一个.conf
配置文件的,实测有效但只能在此目录下通过mosquitto - c mosquitto.conf -v
启动服务,而不能直接使用sudo service mosquitto start
启动服务
还有说在/etc/mosquitto
目录下修改端口的
此方法有效但不完整,大多数博主都是修改为listener 1883
实测后无效,而是需要将这行修改为listenr 1883 0.0.0.0
(一定要加上0.0.0.0开放允许访问的地址)
综上,只需要直接修改/etc/mosquitto
目录下的mosquitto.conf
文件,开放端口和允许访问的地址即可
最后再用moquitto_sub -t nihao
以及mosquitto_pub -t fan -m "{"fan":"on"}"
与MQTTfx联动测试
此时发现可以成功调通