Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】

这篇具有很好参考价值的文章主要介绍了Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Mosquitto是一个开源的消息代理,它实现了MQTT协议版本3.1和3.1.1。它可以在不同的平台上运行,包括Windows、Linux、macOS等。mosquitto可以用于物联网、传感器、移动应用程序等场景,提供了一种轻量级的、可靠的、基于发布/订阅模式的消息传递机制。

MQTT协议远程访问的好处在于它可以实现跨网络的远程通信,使得设备可以在不同的地方进行控制和监控。同时,MQTT协议具有轻量级、高效、可靠等特点,可以在低带宽、不稳定网络环境下稳定运行。此外,MQTT协议还支持多种编程语言和平台,方便开发者进行二次开发和集成

下面介绍在Linux中搭建Mosquitto MQTT协议消息服务端,并结合Cpolar 内网穿透工具实现远程连接!

1. Linux 搭建 Mosquitto

本例在centos 7系统,使用yum 一键安装:

yum install mosquitto -y

安装完成后,下面是一些操作Mosquitto服务命令

sudo systemctl start mosquitto     # 启动 Mosquitto 服务
sudo systemctl stop mosquitto      # 停止 Mosquitto 服务
sudo systemctl restart mosquitto   # 重新启动 Mosquitto 服务
sudo systemctl status mosquitto    #检查服务器状态

执行启动命令后,输入查看状态,我们可以看到服务已经运行成功了,本地安装成功了,下面安装cpolar工具,穿透Mosquitto 服务的本地1883端口,实现远程访问连接.

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

2. Linux 安装Cpolar

上面我们安装成功了Mosquitto MQTT服务器,下面我们在Linux安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

3. 创建MQTT服务公网连接地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:1883 (本地默认端口)
  • 域名类型:临时随机TCP端口
  • 地区:选择China VIP

点击创建

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的tcp地址,这个地址就是公网连接地址,我们可以在任意设备上使用该地址进行连接

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

4. 客户端远程连接MQTT服务

上面在cpolar中创建了 公网地址,下面我们使用MQTT客户端工具mqttfx进行远程连接测试,如果没有该客户端,可以进入官方下载:https://softblade.de/en/download-2/,下载后安装打开,点击设置图标

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

通过cpolar公网地址进行连接,Address值为公网地址,Port 值为公网地址后面对应的端口号,输入完点击应用

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

然后回到主界面,点击connect,灯变为绿色,表示连接成功

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

我们可以测试,是否可以发布消息和订阅,首先在Subscribe订阅界面填写一个topic 订阅ID,然后点击按钮Subscribe,开始订阅

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

然后在Publish 发布界面,输入同样的topic ID,然后输入需要发布的消息,点击按钮Publish

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

回到Subscribe订阅界面,我们可以看到,成功订阅到了该条信息

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

5. 代码调用MQTT服务

同样 我们在代码层面进行连接,以Java 为例,导入相关包

  <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
            <version>1.1.0</version>
        </dependency>

然后使用Cpolar 公网地址进行连接,输入ClientID,向同一个topic进行发布消息,当然,这边测试,地址是写在内部,如生产环境,建议将地址进行外部配置,有助于方便后续修改

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

程序运行后,我们可以看到,在客户端Subscribe 界面工具上,看到了我们代码中发布的消息数据,也是可以连接测试成功

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

6. 固定连接TCP公网地址

要注意的是,以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。

配置固定tcp端口地址需要将cpolar升级到专业版套餐或以上。

保留一个固定tcp地址,登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为我的世界保留一个固定tcp地址:

  • 地区:选择China
  • 描述:即备注,可自定义

点击保留

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址,

点击更新

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定TCP地址。

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

7. 固定地址连接测试

固定好了地址后,程序中修改成我们固定的TCP地址进行连接,当然,这边测试,地址是写在内部,如生产环境,建议将地址进行外部配置,有助于方便后续修改

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器

可以看到接收订阅到了发送的消息,一个永久不变的固定地址就设置好了

Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】,技术周刊,linux,运维,服务器文章来源地址https://www.toymoban.com/news/detail-753149.html

到了这里,关于Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mosquitto心跳和网络重连机制(基于MQTT协议)

    在网络通信中,心跳(Heartbeat)指的是一种周期性的消息,用于维持通信连接的活动状态。心跳包的主要作用是检测连接是否处于活动状态,及时发现连接异常并重新恢复连接,维护网络通信的稳定性和可靠性。 MQTT(Message Queuing Telemetry Transport)是一种轻量级、开放式的消息

    2024年02月03日
    浏览(34)
  • MQTT协议版本Mosquitto移植到嵌入式arm平台

    MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智

    2024年02月06日
    浏览(41)
  • 【物联网】使用RabbitMQ作为MQTT服务端并自定义设备连接权限

    最近公司启动了一个新的物联网项目,使用MQTT协议与设备通信,在比较了各大MQTT服务后,决定选用开源的RabbitMQ搭建我们的服务端。我们的目标是能够支撑10万台设备同时在线,因此比较看重集群和高可用功能,RabbitMQ在这方面十分优异,同时RabbitMQ也能够兼顾项目中的消息中

    2024年02月11日
    浏览(32)
  • 阿里云部署开源MQTT平台mosquitto的docker操作

    MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,广泛用于物联网和传感器网络中。Mosquitto是一个流行的开源MQTT代理,可以在Docker中进行配置和部署。本文将详细介绍如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信。 在开始之前,

    2024年02月10日
    浏览(35)
  • MQTT协议-发布消息(服务器向客户端发送)

    发布消息报文组成:https://blog.csdn.net/weixin_46251230/article/details/129414158 在了解了发布信息的PUBLISH报文后,就可以分析出阿里云服务器向本地客户端发送的报文数据了 实验前需要在阿里云创建产品和设备,并创建简单的温度和湿度物模型:https://blog.csdn.net/weixin_46251230/article/de

    2024年02月06日
    浏览(44)
  • MQTT:windows环境下配置MQTT服务器(mosquitto)

    目录 1.下载 mosquitto 2.安装 mosquitto  3.配置 mosquitto  4.测试 mosquitto         登录网址:         http://mosquitto.org/files/binary/         这里是window环境,选择win32/,下载mosquitto安装包。          双击安装 - 点击Next - 点击Next - 选择安装路径 - 点击install - 点击Finish。

    2024年02月11日
    浏览(31)
  • Windows环境下MosQuitto服务器搭建,安装mqtt服务端软件

    1、下载、安装MosQuitto服务器 下载地址:http://mosquitto.org/files/binary/ 根据平台选择相应的代码下载。 -u是用户名,-P是密码,-t是主题,-h是ip(如:127.0.0.1),-p是端口号 ,-m 是发布的消息 另外开启一个cmd窗口,然后订阅一个主题,主题名字叫 topic 再开启第三个cmd窗口,然后在

    2024年02月08日
    浏览(36)
  • STM32 + ESP32(AT固件 MQTT协议) + MQTTX(桌面终端) + (EMQX消息服务器)

    翻出老物件,搭建一个简单的 IOT 开发环境,也算是废物利用了 ,接下来加传感器。 1. STM32  采集数据:      RTOS。      资源相对比较丰富,可以根据项目需求定制。 2. ESP32  网络传输(AT固件 MQTT协议) :     AT:封装好的接口,扩展性不是那么好,业务简单的话将就可以

    2024年02月08日
    浏览(58)
  • Linux部署mosquitto及其配置

    心得:我是今年2月份开始了解mqtt协议到现在,从一开始的模糊到现在的懵懂,刚刚开始是在本地部署mosquitto的,就是在自己的电脑上部署这个mosquitto轻量级服务器,后来用阿里云,腾讯云来piao一个月的试用,然后用身边人的。不行也有别的云服务器来玩,测试。刚刚开始还

    2024年02月04日
    浏览(22)
  • Ubuntu MQTT mosquitto

    https://github.com/eclipse/paho.mqtt.c.git https://github.com/eclipse/paho.mqtt.cpp.git Paho MQTT C Client Library: MQTT Client library for C (MQTTClient) GitHub - eclipse/mosquitto: Eclipse Mosquitto - An open source MQTT broker  1. install: https://mosquitto.org/download/ 2. conf: 打开/etc/mosquitto/mosquitto.conf,发现需要将配置文件放置于/

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包