前言:因为将以前的几个项目底层重新使用了mqtt协议,所以在此记录一下阿里云搭建mosquitto的过程。


目录

  • 1.阿里云申请轻量级服务器
  • 2.mosquitto安装
  • (1)下载mosquitto
  • (2)mosquitto依赖库安装
  • (3)mosquitto的安装
  • (4)检测是否安装成功
  • 错误:
  • (5)mosquitto测试使用
  • 3.**用户和密码配置**
  • (1)配置文件
  • (2)添加用户信息
  • (3)测试


1.阿里云申请轻量级服务器

这个过程就不详细说,如果有学生认证的话会非常的优惠。应该是在9.9一个月。

购买成功后

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_IoTDB内置的MQTT支持V5么


然后在远程连接中设置自己的密码就可以使用SecureCRT 8.1等工具来对你的linux云服务器进行开发了。

将你在控制台获取到的公网IP、用户名(默认root)点击连接后输入密码后即可连接到你的阿里云。

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_linux_02

2.mosquitto安装

(1)下载mosquitto

http://mosquitto.org/files/source/ [最新版本查看]

wget http://mosquitto.org/files/source/mosquitto-1.6.9.tar.gz

(2)mosquitto依赖库安装

sudo apt-get install libssl-dev
sudo apt-get install libc-ares-dev
sudo apt-get install uuid-dev

(3)mosquitto的安装

tar zxvf mosquitto-1.6.9.tar.gz 
cd mosquitto-1.6.9
make
sudo make install

(4)检测是否安装成功

在安装mosquitto成功后,可以在/usr/local/lib文件夹中有libmosquitto.so.1等文件,如下图所示:

cd /user/local/lib
ls

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_服务器_03

错误:

使用过程中找不到libmosquitto.so.1

error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory


【解决方法】——修改libmosquitto.so位置

创建链接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
更新动态链接库
sudo ldconfig

(5)mosquitto测试使用

1)启动mosquitto服务器

mosquitto -v

2)订阅消息

mosquitto_sub -h localhost -t "mqtt" -v

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_服务器_04


(3)发布消息

mosquitto_pub -h localhost -t "mqtt" -m "Hello mqtt"

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_linux_05


在切回到订阅主题的终端就已经接收到了来自主题为mqtt推送到的消息“hello world”

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_linux_06

3.用户和密码配置

(1)配置文件

Mosquitto服务器的配置文件为/etc/mosquitto/mosquitto.conf,关于用户认证的方式和读取的配置都在这个文件中进行配置。
nano  /etc/mosquitto/mosquitto.conf.example

写入:

#禁止匿名访问
allow_anonymous false
#认证配置
password_file /etc/mosquitto/pwfile

(2)添加用户信息

添加用户’lwh’密码’****‘,

mosquitto_passwd -c /etc/mosquitto/pwfile lwh

敲入命令后,连续俩次输入相同的密码。

(3)测试

输入正确的用户名和密码:

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_IoTDB内置的MQTT支持V5么_07


输入正确的用户名和密码,通过Wireshark捕获tcp 1883端口 成功推送和订阅输入错误的密码:

IoTDB内置的MQTT支持V5么 iot mqtt服务器 免费_其他_08


通过Wireshark捕获tcp 1883端口 可以发现连接mqtt server失败

对于失败的原因总结了几点:
1、第一阿里云服务器没有打开1883的端口。并且没有进行服务器重启
2、通过ps -ef|grep mosquitto 查看进程 杀死进程后在进行启动在尝试调试。