总体步骤:
1.联网服务器安装mosquitto,把所有文件打包成压缩文件下载到本地;
2.在测试/生产环境把本地的压缩文件上传;
3.在测试/生产环境解压并安装
系统满足条件:centos7.9 2009
一、联网服务器操作(需下载依赖包)
1. 安装EPEL仓库(解决依赖问题)
yum install epel-release -y # 安装扩展仓库
yum clean all && yum makecache # 清理缓存并更新
验证:
yum repolist | grep epel # 确认EPEL仓库已启用
验证命令如图所示:
2. 下载Mosquitto及依赖包
mkdir -p /opt/mosquitto_offline && cd /opt/mosquitto_offline
yum install mosquitto mosquitto-devel -y --downloadonly --downloaddir=. # 下载主程序及开发文件
yum install libwebsockets libwebsockets-devel -y --downloadonly --downloaddir=. # 下载WebSocket支持库(可选)
验证:
ls *.rpm | grep mosquitto # 确认包含mosquitto-*.rpm
ls *.rpm | grep libwebsockets # 若需WebSocket支持,确认此文件存在
3. 打包并压缩所有依赖包
tar -czvf folder_name.tar.gz /path/to/source/folder
-c:创建新的压缩文件
-z:使用gzip压缩
-v:显示压缩过程(可选)
-f:指定压缩文件名
验证:
ls -lh folder_name.tar.gz # 确认文件已生成且大小合理
二、目标服务器操作(离线安装)
将联网服务器的 压缩文件.tar.gz 通过USB/FTP等方式传输到目标服务器的/opt
目录。
1. 解压
tar -xzvf 压缩包
2. 安装RPM包
cd /opt/mosquitto_offline
rpm -Uvh --nodeps *.rpm # 升级或安装所有RPM包(忽略依赖检查,需提前确保依赖已满足)
验证:
rpm -qa | grep mosquitto # 确认mosquitto及开发包已安装
rpm -qa | grep libwebsockets # 若需WebSocket支持,确认此包已安装
3. 配置Mosquitto
# 1. 创建配置文件目录(若不存在)
mkdir -p /etc/mosquitto
# 2. 复制默认配置文件(需从联网服务器获取或手动创建)
cp /usr/share/doc/mosquitto-*/mosquitto.conf /etc/mosquitto/ # 默认配置文件路径可能因版本不同而变化
# 3. 修改配置文件(支持WebSocket及用户认证)
vim /etc/mosquitto/mosquitto.conf
关键配置项:
# 支持WebSocket(可选)
listener 9001
protocol websockets
# 关闭匿名访问
allow_anonymous false
# 用户认证文件路径
password_file /etc/mosquitto/pwfile.txt
4. 创建用户并启动服务
# 1. 创建密码文件
mosquitto_passwd -c /etc/mosquitto/pwfile.txt root # 首次运行需加-c参数
# 2. 启动服务
systemctl start mosquitto # 使用systemctl管理服务
# 3. 设置开机自启
systemctl enable mosquitto
验证:
systemctl status mosquitto # 确认服务状态为active
netstat -tulnp | grep mosquitto # 确认1883/9001端口已监听
telnet 127.0.0.1 1883 # 测试端口连通性
三、测试验证
1. 发布/订阅测试
# 订阅主题
mosquitto_sub -h localhost -t test -u root -P 密码 # 需替换实际密码
# 发布消息
mosquitto_pub -h localhost -t test -m "Hello MQTT" -u root -P 密码
2. 验证用户认证
# 尝试匿名订阅(应失败)
mosquitto_sub -t test # 无密码会报错
注意事项
1.依赖完整性:若安装后提示缺少库(如:libmosquitto.so),需手动下载对应版本的.rpm
包并安装。
2.防火墙设置:确保开放1883(MQTT)和9001(WebSocket)端口
3.配置文件路径:不同Mosquitto版本配置文件路径可能不同,需确认实际路径
通过以上步骤,可在离线环境中完成Mosquitto的安装与配置。