首页 / 原生VPS推荐 / 正文
MQTT服务器搭建指南,mqtt服务器搭建在内网

Time:2024年12月16日 Read:5 评论:42 作者:y21dr45

一、MQTT概述

1 什么是MQTT?

MQTT服务器搭建指南,mqtt服务器搭建在内网

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于发布/订阅范式的轻量级即时通讯协议,专为低带宽和不可靠网络环境设计,它由IBM开发,如今已成为物联网(IoT)设备最常用的协议之一,通过MQTT,设备可以高效地相互通讯,同时降低网络带宽和资源的使用。

2 MQTT的主要特点

轻量级协议:适用于资源有限的设备和带宽受限的网络环境。

发布/订阅模式:解耦发布者和订阅者,提高系统的可扩展性。

高可靠性:提供三种不同的服务质量(QoS)级别,以保证消息的传递。

行业标准化:由OASIS(国际标准化组织)进行标准化,确保了跨平台的互操作性。

二、MQTT服务器软件选择

在搭建MQTT服务器之前,需要选择合适的MQTT服务器软件,目前常用的开源MQTT服务器包括EMQX和Mosquitto,下面将对这两种服务器进行详细介绍。

1 EMQX

2.1.1 EMQX简介

EMQX是一款高性能的开源MQTT消息服务器,支持大规模分布式部署,它具有丰富的功能和稳定的性能,是在生产环境中使用的理想选择。

2.1.2 安装EMQX

步骤一:下载EMQX

1、访问EMQX官网。

2、选择适合的版本(如emqx-5.3.0-windows-amd64.zip)。

3、下载并解压到指定目录,例如C:\EMQX

步骤二:启动EMQX

1、打开命令提示符,进入解压后的目录bin

2、输入./emqx start启动服务器。

步骤三:登录后台管理界面

1、在浏览器中访问http://localhost:18083/。

2、使用默认账号admin和默认密码public登录。

3、登录后建议修改默认密码以提高安全性。

2.1.3 配置EMQX

创建用户

1、登录EMQX管理界面后,点击“创建认证”。

2、选择Password-Based认证方式,数据源选择内置数据库

3、设置用户名和密码,并保存。

添加用户

1、在用户管理界面点击“+”按钮。

2、输入用户名(如MQTT1)、密码(如123456),并赋予相应的权限。

3、重复以上步骤添加其他用户。

2 Mosquitto

2.2.1 Mosquitto简介

Mosquitto是另一种流行的开源MQTT代理,具有轻量级、易于部署的特点,特别适合在资源受限的环境中使用。

2.2.2 安装Mosquitto

在Ubuntu上安装

1、执行以下命令更新软件包列表并安装Mosquitto:

   sudo apt-get update
   sudo apt-get install mosquitto mosquitto-clients

在Windows上安装

1、下载Mosquitto的Windows版本。

2、解压并将文件夹放置在合适的位置,例如C:\mosquitto

步骤三:启动Mosquitto

1、在Linux系统中,使用以下命令启动Mosquitto:

   sudo systemctl start mosquitto

2、在Windows系统中,进入bin目录,双击mosquitto.exe启动服务器。

步骤四:登录后台管理界面

1、在浏览器中访问http://localhost:1883/。

2、使用默认用户名admin和默认密码admin登录。

三、配置与测试MQTT服务器

1 配置EMQX

3.1.1 增加用户认证

1、进入EMQX后台管理界面,点击“创建认证”。

2、选择认证方式为Password-Based,数据源选择内置数据库

3、输入用户名、密码并进行加密方式和加盐设置,然后保存。

3.1.2 添加用户

1、在用户管理界面点击“添加用户”。

2、输入用户名(如MQTT1)、密码(如123456),并赋予相应的权限。

3、重复以上步骤添加其他用户。

2 配置Mosquitto

3.2.1 修改配置文件

1、Mosquitto的主要配置文件是mosquitto.conf,通常位于/etc/mosquitto/目录下。

2、根据需要修改配置文件中的参数,如监听地址、端口、日志文件路径等。

3.2.2 增加用户认证

1、Mosquitto支持多种认证机制,包括用户名/密码、证书认证等。

2、编辑mosquitto.conf文件,添加如下内容启用用户名/密码认证:

   allow_anonymous false
   password_file /etc/mosquitto/pwdFile

3、创建密码文件,格式如下:

   username:password

4、重启Mosquitto以使配置生效。

3 测试MQTT服务器

3.3.1 使用MQTT客户端工具进行连接测试

可以使用如MQTTX等MQTT客户端工具进行连接测试。

1、打开MQTTX,创建新连接。

2、填写客户端ID、用户名、密码、发布者和订阅者信息。

3、连接到MQTT服务器,并进行消息的发布和订阅测试。

3.3.2 使用代码进行连接测试

以下是一段Python示例代码,用于测试MQTT连接:

import paho.mqtt.client as mqtt
MQTT服务器地址
broker = "mqtt://localhost:1883"
创建客户端实例
client = mqtt.Client(client_id="")
连接MQTT服务器
client.connect(broker)
发布消息
client.publish("test/topic", "Hello, MQTT!")
订阅主题
def on_message(client, userdata, message):
    print(f"Received message '{message.payload.decode()}' on topic '{message.topic}'")
client.subscribe("test/topic")
client.on_message = on_message
运行客户端
client.loop_forever()

该代码演示了如何连接到MQTT服务器、发布和订阅消息,用户可以根据实际情况修改主题和消息内容。

四、高级配置与优化

1 TLS/SSL加密通信

为了提高通信的安全性,MQTT支持通过TLS/SSL进行加密通信,以下是启用TLS/SSL的步骤:

1、生成证书和私钥:首先需要生成CA证书、服务器证书和客户端证书,可以使用OpenSSL工具来生成这些证书。

   # 生成CA证书和私钥
   openssl genrsa -des3 -out ca.key 2048
   openssl req -new -x509 -key ca.key -out ca.crt -days 3650
   # 生成服务器证书签名请求(CSR)
   openssl req -new -key server.key -out server.csr
   # 使用CA证书签署服务器证书
   openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt -days 3650
   # 为客户端证书生成密钥和CSR
   openssl genrsa -out client.key 2048
   openssl req -new -key client.key -out client.csr
   # 使用CA证书签署客户端证书
   openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt -days 3650

2、配置EMQX使用TLS/SSL:编辑emqx.conf文件,添加或修改以下配置项:

   listener.ssl.enable = true
   listener.ssl.
标签: mqtt服务器搭建 
排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1