Article / 文章中心

从0开始的mqtt服务器

发布时间:2022-01-26 点击数:261

冬天实战营第二期:Linux操作体系实战入门

简介: 本篇文章将会介绍如何运用阿里云建立一个归于自己的mqtt服务器

作为一名电子科大物联网专业大二的学生,由于参与的智能睡房项目需求运用mqtt传输传感器数据,因此希望能够在云服务器上建立归于自己的mqtt服务器。通过咨询周围的大佬,得知阿里云服务器不只安稳安全,一起也对大学生提供“飞天加快方案·高校学生在家实践”活动,因此通过本活动取得了一台ECS用于项目实验。


本次选用的镜像为CentOS 8.5 64位官方镜像,运用mosquitto建立mqtt服务器。在正式运用SSH衔接服务器进行装置之前需求留意:mqtt协议一般运用1883/8883端口进行未加密/加密数据传输,因此在服务器所属的安全组中要增加相应的端口,例如本次我增加了1883端口:

image.png

在运用ssh远程登陆到系统后,咱们就能够开始装置了。

  1. 运用yum取得mosquitto

在指令行中输入下列指令寻找商场中是否有mosquitto软件包

yum search mosquitto

image.png

通过查找能够发现,商场中存在mosquitto与mosquitto-devel两款软件包,在这里,咱们挑选悉数装置:

yum install mosquitto mosquitto-devel

在承认之后系统便会自动装置。不大一会,当呈现“Installed:……Complete!”字样时mosquitto便装置好了。

  1. 装备mosquitto

装置完成之后,一切装备文件会被放置于/etc/mosquitto/目录下,其间最重要的就是Mosquitto的装备文件,即mosquitto.conf,其间具体说明晰装备参数。在本次设置中,我将自己的设置另外独自保存在my.conf文件中,其内容如下:

#my config file for mosquitto  # General configuration #答应匿名登录 allow_anonymous true  # Listeners #监听1883端口,无此指令无法与外网通信 listener 1883  # Logging #在窗口中输出日志 log_dest stdou #挑选日志记载内容 log_type debug log_type error log_type warning log_type notice log_type information log_type subscribe log_type unsubscribe #在日志前增加指定格局时间戳 log_timestamp_format %Y-%m-%dT%H:%M:%S #将日志写入指定文件 log_dest file /var/log/mosquitto.log

其间需求留意的是,程序本身无法自动生成日志文件,需求在指定位置自动创建一个空文件,一起要设置写权限,防止程序呈现权限不足,无法发动的现象。

vi /var/log/mosquitto.log #保存并退出后更改权限设定 chmod 666 mosquitto.log #如果不设置,在程序发动后会呈现下列字样: Error: Unable to open log file /var/log/mosquitto.log for writing.

完成上列操作后,服务器就能够运用了,输入指令后,服务器便会在屏幕上打印出日志,此时,咱们便可运用其他设备通过公网ip进行通信了。

mosquitto -c /etc/mosquitto/my.conf #-c指令用于运用指定装备文件,运用-d指令能够在后台运行

image.pngimage.png


用过这次装置过程,我把握了linux中对文件的操作,多进程处理等多种方法。在这次装置过程中让我领会最大的是linux开放的特性使得软件的装置方法更多地依赖于用户对于系统的理解,需求手动操作的部分也成倍增加。对于刚刚触摸linux的菜鸟来说,充分运用网络资源,多逛逛开发者社区、各大论坛是处理种种问题的一大法宝。