一、下载
官方源码下载
sudo wget https://mosquitto.org/files/source/mosquitto-2.0.15.tar.gz
tar -zxvf mosquitto-2.0.15.tar.gz //编译是cd进入源码文件夹内
二、安装
安装依赖:
sudo apt install gcc g++ make libssl-dev libcjson-dev libwebsockets-dev
编译安装
sudo make
sudo make install
三、配置mosquito
1. 配置匿名登录
配置mosquitto,创建配置文件,也可以自定义其他路径和文件名
sudo vim /etc/mosquitto/conf.d/mycfg.conf
匿名登录开启:
allow_anonymous true
listener 1883
然后可以先手动开启测试下配置是否正确(用户权限下mosquitto命令找不到可能是正常的,执行文件有时在/usr/local/sbin/
下面):
sudo mosquitto -c /etc/mosquitto/conf.d/mycfg.conf
2. 配置密码登录
先创建密码文件,命令输入后会提示输入两次密码,输入完成后文件创建完成
sudo mosquitto_passwd -c /etc/mosquitto/passwd ankee
创建配置文件,也可以自定义其他路径和文件名
sudo vim /etc/mosquitto/conf.d/mycfg.conf
配置密码文件,关闭匿名登录:
allow_anonymous false
listener 1883
password_file /etc/mosquitto/passwd
然后可以先手动开启测试下配置是否正确(用户权限下mosquitto命令找不到可能是正常的,执行文件有时在/usr/local/sbin/
下面):
sudo mosquitto -c /etc/mosquitto/conf.d/mycfg.conf
四、配置开机启动
sudo vim /etc/systemd/system/mosquitto.service
注意ExecStart
中执行命令和自己配置文件的路径和文件名正确
[Unit]
Description=Mosquitto MQTT Broker
After=network.target
[Service]
ExecStart=mosquitto -c /etc/mosquitto/conf.d/mycfg.conf
Restart=always
User=root
[Install]
WantedBy=multi-user.target
配置开机重启
sudo systemctl daemon-reload
sudo systemctl enable mosquitto
如果之前有过配置可能会有以下错误:
- 错误1,不能开启服务:
Failed to enable unit: Unit file /etc/systemd/system/mosquitto.service is masked.
先解锁,然后重新执行上面的步骤:
sudo systemctl unmask mosquitto
- 错误2,mosquitto_sub提示版本问题:
mosquitto_sub: /lib/arm-linux-gnueabihf/libmosquitto.so.1: version `MOSQ_1.7’ not found (required by mosquitto_sub)
cd /usr/lib/arm-linux-gnueabihf/
sudo rm ./libmosquitto*
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/arm-linux-gnueabihf/libmosquitto.so.1
sudo ldconfig