前言:因为将以前的几个项目底层重新使用了mqtt协议,所以在此记录一下阿里云搭建mosquitto的过程。
目录
- 1.阿里云申请轻量级服务器
- 2.mosquitto安装
- (1)下载mosquitto
- (2)mosquitto依赖库安装
- (3)mosquitto的安装
- (4)检测是否安装成功
- 错误:
- (5)mosquitto测试使用
- 3.**用户和密码配置**
- (1)配置文件
- (2)添加用户信息
- (3)测试
1.阿里云申请轻量级服务器
这个过程就不详细说,如果有学生认证的话会非常的优惠。应该是在9.9一个月。
购买成功后
然后在远程连接中设置自己的密码就可以使用SecureCRT 8.1等工具来对你的linux云服务器进行开发了。
将你在控制台获取到的公网IP、用户名(默认root)点击连接后输入密码后即可连接到你的阿里云。
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
错误:
使用过程中找不到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
(3)发布消息
mosquitto_pub -h localhost -t "mqtt" -m "Hello mqtt"
在切回到订阅主题的终端就已经接收到了来自主题为mqtt推送到的消息“hello world”
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)测试
输入正确的用户名和密码:
输入正确的用户名和密码,通过Wireshark捕获tcp 1883端口 成功推送和订阅输入错误的密码:
通过Wireshark捕获tcp 1883端口 可以发现连接mqtt server失败
对于失败的原因总结了几点:
1、第一阿里云服务器没有打开1883的端口。并且没有进行服务器重启
2、通过ps -ef|grep mosquitto 查看进程 杀死进程后在进行启动在尝试调试。