一种通过MQTT Broker实现远程调试、创建网络隧道的解决方案

简介: 介绍了一种通过MQTT Broker实现远程调试、创建网络隧道的解决方案,该方案部署方便,稳定。

前言

先说一下场景需求:
1、远程ssh访问设备,但是设备端不具备公网访问能力。
2、物联网采集网关,通过4G连接外网,网关部署在项目现场,我们不知道网关的IP,就算知道,网络链路也不通。对于网关的远程调试和运维都无法进行。
目前的解决方案:
1、通过SD-WAN技术,设备与设备之间打通隧道。
2、通过VPN,本地部署VPN服务器,实现VPN专网。
3、采用阿里云/华为云边缘计算解决方案,设备连接到阿里云/华为云边缘平台,实现远程运维、调试。

现有方案优缺点

1、SD-WAN技术,需要配备SD-WAN软件或硬件,对于企业用户是合适的。但是设备厂商并不合适。
2、采用VPN,如果是运营商VPN,成本昂贵,如果是私有部署VPN,部署相对专业,我没有部署过,不过有一定的专业门槛。
3、使用公有云提供的边缘计算方案,相当于要捆绑公有云,有不小的学习成本。
综上,上述方案的优点简单的说就是方案成熟,稳定,缺点就是要花钱买钱和不少人力。

工程师方案

上面的方案是基于外部力量实现的,对于稍微有些能力的开发者而言,也是有少花钱的解决方案的,简单的说,就是在一台公网服务器上,部署一个自己开发的 隧道转发 应用程序,设备通过 自己开发的应用程序来建立隧道,进而实现转发,流转。这种方案,理论上可行,稍微有点网络基础的人就知道,背后的工作量巨大,光是稳定性这块就很难保证,就更不用提多并发管理了。

MQTT Broker转发方案

上面所有的方案,基本上都是要实现一个中转站,上面提到的工程师方案的难点和缺点是,一般人很难开发出稳定、高可用、并发的中转服务器。那么如果有个 现成的、方便部署、稳定、可靠的中转服务器呢,是否就能解决问题了呢,答案是:yes,有这样的方案。
关于MQTT的通信协议,可以看我之前关于MQTT的系列文章:
《MQTT协议详解及开发教程(一)MQTT协议概述》, 这里就不赘述了。解决方案如下:
19.png
我们以MQTT Broker EMQx为例,网关和远程调试工具作为mqtt client, 通过2个topic:up和down

  • 配置工具想要发送命令,则publis消息到 down topic, 网关订阅down topic,收到命令,对命令进行解析并执行,然后返回消息,publis消息到up topic,而配置工具订阅up topic,收到返回数据。

这种方案,实现了一种通过Broker搭建隧道,实现数据中转。

优点

可能有些不熟悉MQTT协议的人会觉得,该方案好像也不过如此啊,原理貌似懂,但是干的事儿好像也不少啊,其实不然,这种方案有很多优点:
1、MQTT是物联网领域的通用标准,不管是阿里云物联网、还是华为IOT,还是其他公司的IOT,基本上都是通过MQTT协议,可以说MQTT已经是物联网领域事实上的标准了,标准的优点就是方便,支持多,资料多。
2、MQTT Broker部署非常方便,以EMQx为例,只需要一台服务器,不管是windows还是linux,部署非常方便,几乎不要什么专业知识。
3、MQTT Broker可选择对象多,EMQx、Apoll等等。
4、开源、免费、稳定,除非要求完善、高质量的服务,一般的知名开源Broker都是免费试用的,关键是非常稳定。

其他工作量

有了MQTT Broker的帮助,对于开发者,我们再也不用干数据转发、打通隧道这种专业性强、复杂的活儿了,我们只需要针对我们自己的应用需求,做MQTT消息的解析即可。

小结

经过测试验证,该方案可以实现:

  • JSON、ASCII码等字符串转发,所以理论上可以实现 ssh模拟。
  • 字节、数值、十六进制数值的转发,所以可以实现远程功能调试,比如Modbus。
  • MQTT支持字节流转发,也就是支持文件传输,实现文件的转发,类似于xftp。

该方案稳定、部署方便,用户只需要关注自己的业务应用即可,目前了解到,一些物联网关(中电网关)就是通过该方案实现的远程调试、下载、上载功能。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
6月前
|
小程序 前端开发
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
校园跑腿小程序系统是一款创新解决方案,旨在满足校园配送需求并拓展校友网络。跑腿员可接单配送,用户能实时跟踪订单并评价服务。系统包含用户、客服、物流、跑腿员及订单模块,功能完善。此外,小程序增设信息咨询发布、校园社区建设和活动组织等功能,助力校友互动、经验分享及感情联络,构建紧密的校友网络。
268 1
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
|
1月前
|
缓存 人工智能 API
API接口调用中的网络异常及解决方案
淘宝API是淘宝开放平台提供的接口集合,支持商品、交易、用户、营销等数据交互。开发者需注册获取App Key,通过签名认证调用API,结合沙箱测试、OAuth授权与安全策略,实现订单管理、数据监控等应用,提升电商自动化与数据分析能力。
|
5月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
1008 39
|
6月前
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
551 37
|
8月前
|
边缘计算 负载均衡 NoSQL
FreeMQTT Plus: 一个新型 MQTT Broker 集群的实现
FreeMQTT Plus 是一款基于 MQTT 协议的高性能消息中间件,采用分布式架构解决单点瓶颈问题。其核心由 Nginx 负载均衡器、黑(A)节点(MQTT Broker)、白(B)节点(消息路由)和日志(L)节点组成。通过无主从设计,支持高可用性、负载均衡与灵活扩展。针对会话同步、消息路由等挑战,FreeMQTT Plus 利用 MQTT5 特性定义元命令,实现节点间高效通信,无需依赖第三方组件。适用于物联网海量设备接入与高并发场景,为未来边缘计算和多级集群部署提供坚实基础。
1438 74
|
7月前
|
小程序 UED
拓展校友网络的创新解决方案:校园论坛圈子小程序+跑腿+二手市场系统
这是一款基于小程序的校园跑腿服务平台,支持多种注册登录方式、下单支付、跑腿接单配送、订单跟踪评价及物流查询功能,并配备客服模块提升用户体验。系统包含用户、客服、物流、跑腿员和订单五大核心模块,功能完善。此外,平台还拓展了校友网络功能,如信息咨询发布、校园社区建设和活动组织等,旨在增强校友互动与联系,形成紧密的校友生态。
251 4
|
8月前
|
安全 网络安全 虚拟化
Hyper-V网络连接无响应解决方案
当Hyper-V虚拟机出现网络连接无响应时,可从以下方面排查:1) 检查物理网络连接,确保设备正常;2) 验证虚拟网络配置,包括虚拟交换机和网络适配器设置;3) 更新驱动程序以解决兼容性问题;4) 调整防火墙和安全软件设置;5) 重启相关服务和设备;6) 使用命令行工具诊断网络问题;7) 检查BIOS中虚拟化技术是否启用;8) 排查IP冲突和其他日志错误。综合以上步骤,可有效修复网络连接故障。
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
360 103
|
9月前
|
监控 BI 网络安全
为何教育机构需要强大的网络安全解决方案
近年来,教育行业从传统课堂快速转向在线课程和虚拟教室,疫情加速了这一进程。然而,数字化转型也带来了网络安全风险。身份治理与管理(IGA)解决方案如ManageEngine的ADManager Plus,能有效保护教育机构免受网络攻击,确保数据安全、简化用户管理并实现合规性。通过自动化流程,它不仅提升了安全性,还减轻了IT管理员的工作负担,确保资源访问的无缝性和准确性。
215 11

热门文章

最新文章