本帖最后由 foxad 于 2024-12-26 10:38 编辑
直接安装
编译安装
sudo apt-get install libssl-dev uuid-dev cmake -y
寻找一个目录进入后
#下载源码包
wget https://mosquitto.org/files/source/mosquitto-1.6.9.tar.gz
#解压
tar xzvf mosquitto-1.6.9.tar.gz
#进入源码目录
cd mosquitto-1.6.9
#编译和安装
make && make install
# 进入程序目录
cd /etc/mosquitto/
apt安装
apt-get install software-properties-common -y
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa #添加源到软件仓库 --可以不用该命令-使用阿里云的源
sudo apt-get update #更新软件仓库列表
sudo apt-get install mosquitto #安装mosquitto
试运行
sudo service mosquitto status #查看运行状态
sudo service mosquitto start #启动服务
sudo service mosquitto stop #停止服务
添加和修改配置
sudo service mosquitto stop #首先停止服务
#用户的局部配置文件放在: /etc/mosquitto/conf.d/目录下,并且这个目录下的所有以.conf后缀的文件都将被mosquitto作为配置文件,在启动时加载。
#在/etc/mosquitto/conf.d目录下,新建myconfig.conf配置文件
# 关闭匿名访问,客户端必须使用用户名
allow_anonymous false
#指定 用户名-密码 文件
password_file /etc/mosquitto/pwfile.txt
创建一个MQTT服务器账户
假设用户名为:user1
在命令行运行:mosquitto_passwd -c /etc/mosquitto/pwfile.txt user1
回车后连续输入2次用户密码即可
重新启动mosquitto
#启动服务
sudo service mosquitto start
sudo systemctl start mosquitto
#重启服务
sudo service mosquitto restart
sudo systemctl restart mosquitto
#停止服务
sudo service mosquitto stop
sudo systemctl stop mosquitto
docker安装
创建目录
mkdir -p /docker/mqtt/config
mkdir -p /docker/mqtt/data
mkdir -p /docker/mqtt/log
编辑配置文件
vi /docker/mqtt/config/mosquitto.conf
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
授权目录
chmod -R 755 /docker/mqtt
运行
docker run -it --name=mqtt --privileged \
-p 1883:1883 -p 9001:9001 \
-v /docker/mqtt/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /docker/mqtt/data:/mosquitto/data \
-v /docker/mqtt/log:/mosquitto/log \
eclipse-mosquitto
增加配置以支持认证模式
#进入容器
docker exec -it mqtt sh
#编辑配置文件
vi /mosquitto/config/mosquitto.conf
allow_anonymous false
password_file /mosquitto/config/pwfile.conf
bind_address 0.0.0.0
#创建密码文件
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
##生成用户和密码(输入用户名后回车输入密码)
mosquitto_passwd -c /mosquitto/config/pwfile.conf <user>
#退出容器
exit
#重启容器
docker restart mqtt
|