Linux搭建MQTT服务器(Mosquitto)
Linux搭建MQTT服务器(Mosquitto)
·
一、安装依赖
yum install gcc gcc-c++ libstdc++-devel
yum install openssl-devel -y
yum install c-ares-devel -y
yum install uuid-devel -y
yum install libuuid-devel -y
// 通过rpm -qa XXX(依赖名) 检查是否已安装过
二、下载、解压、编译、安装
// 下载
wget https://mosquitto.org/files/source/mosquitto-2.0.8.tar.gz
// 解压
tar -zxvf mosquitto-2.0.8.tar.gz
// 编译、安装
cd mosquitto-2.0.8
make
sudo make install
// 拷贝配置
cd /etc/mosquitto
cp mosquitto.conf.example mosquitto.conf
编译时,若提示fatal error: cjson/cJSON.h: No such file or directory,需要安装cJSON,然后重新安装mosquitto。
yum install cmake
yum -y install git -- 若之前未安装git需执行此步骤,通过git --version验证是否安装
cd /usr/local/
git clone https://github.com/DaveGamble/cJSON.git
cd cJSON/
mkdir build
cd build/
cmake ..
make
make install
echo "/usr/local/lib64" >> /etc/ld.so.conf
/sbin/ldconfig
三、创建软连接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig
若不添加软连接,发布、订阅消息时会提示"error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory"。
四、启动服务
// 创建用户、用户组,否则启动时,提示"Unable to drop privileges to 'mosquitto' ..."
groupadd mosquitto
useradd -g mosquitto mosquitto
chown -R mosquitto:mosquitto /etc/mosquitto/
mosquitto -c /etc/mosquitto/mosquitto.conf -d
五、订阅、发布测试
打开两个服务器连接,分别执行mosquitto_sub、mosquitto_pub命令。
六、权限控制
主要涉及/etc/mosquitto/mosquitto.conf文件的三个属性:
- allow_anonymous:允许匿名
- password_file:密码文件
- acl_file:访问控制列表
-
配置监听端口为1883 (注意服务器的防火墙端口开放)
-
配置密码文件,指向/etc/mosquitto/pwfile
// 创建两个用户testa、testb
mosquitto_passwd -c /etc/mosquitto/pwfile testa
mosquitto_passwd -c /etc/mosquitto/pwfile testb
- 配置用户访问权限(用户testb只能订阅/req/#主题、发布/res/#主题)
cp aclfile.example aclfile
vim aclfile
- 验证
mosquitto_pub -h [IP] -t [topic] -u [user] -P [password] -p [port] -m [message]
mosquitto_sub -h [IP] -t [topic] -u [user] -P [password]
更多推荐
已为社区贡献2条内容
所有评论(0)