当前位置: 首页 > news >正文

如何将你在树莓派上部署的 IoT 物联网 MQTT 服务发布到公网?

0449deee4cb7bb3ff7fbd45b02dfd2d5.png

上一章,你成功的在树莓派搭建了 EMQX 开源社区版,用来提供 MQTT 服务,并验证了设备端接入和消息通信。但你发现只能在局域网内访问 emqx.local 服务,而 IoT 设备分布在全国各地公共网络环境,这些设备该如何接入呢?

01

在树莓派安装花生壳客户端

你需要借助内网穿透服务将树莓派上部署的 MQTT 服务发布到公共网络。花生壳软件提供内网穿透、端口映射服务,为全球1800多万用户提供DDNS动态域名解析服务,支持外网访问内网服务器,为用户提供免费动态域名申请,软件下载,域名解析,解析教程等服务。

首先,我们SSH登陆到树莓派,下载花生壳 5.1.0 版本

wget "https://dl.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb" -O phddns_5.1.0_rapi_aarch64.deb

下载完成后,执行如下命令,进行安装

sudo dpkg -i phddns_5.1.0_rapi_aarch64.deb

安装成功后,你会获取到花生壳账号的 SN 和 Password 

f8953147b3c3279d8bb18feaca867f91.jpeg

完整执行过程如下:

emqx@emqx:~ $ wget "https://dl.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb" -O phddns_5.1.0_rapi_aarch64.deb
--2023-08-11 17:35:42--  https://dl.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb
正在解析主机 dl.oray.com (dl.oray.com)... 61.164.147.237, 122.225.213.251, 122.225.213.252, ...
正在连接 dl.oray.com (dl.oray.com)|61.164.147.237|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:207394 (203K) [application/octet-stream]
正在保存至: “phddns_5.1.0_rapi_aarch64.deb”phddns_5.1.0_rapi_aarch 100%[=============================>] 202.53K  --.-KB/s  用时 0.05s   2023-08-11 17:35:44 (3.75 MB/s) - 已保存 “phddns_5.1.0_rapi_aarch64.deb” [207394/207394])emqx@emqx:~ $ sudo dpkg -i phddns_5.1.0_rapi_aarch64.deb
正在选中未选择的软件包 phddns。
(正在读取数据库 ... 系统当前共安装有 99512 个文件和目录。)
准备解压 phddns_5.1.0_rapi_aarch64.deb  ...
正在解压 phddns (5.1.0) ...
正在设置 phddns (5.1.0) ...
Created symlink /etc/systemd/system/multi-user.target.wants/phtunnel.service → /lib/systemd/system/phtunnel.service.
Installation, please later...
Successful installation of Phddns Service.+--------------------------------------------------+|           Oray Phtunnel Raspberry 5.1.0          |+--------------------------------------------------+|  SN: orayce81243ca57e   Default password: admin  |+--------------------------------------------------+|    Remote Management Address http://b.oray.com   |+--------------------------------------------------+

你可以通过如下命令来管理花生壳客户端

命令
功能

phddns start

启动服务
phddns status查看状态
phddns stop停止服务
phddns restart重启服务
phddns reset重置服务
phddns enable开机自启动
phddns disable关闭开机自启动
phddns version查看版本

02

配置内网穿透服务

当你安装好花生壳客户端后,使用生成的 SN 和 Password 登陆 http://b.oray.com/  ,实现和已有的花生壳账号绑定。

44efdbd9ca7c30edc048c0a3ac1941c7.png

绑定成功后,在设备列表你可以看到树莓派的 SN 标识。

620458b2fe4fca450744404d9535f015.png

相关文章:

如何将你在树莓派上部署的 IoT 物联网 MQTT 服务发布到公网?

​ 上一章,你成功的在树莓派搭建了 EMQX 开源社区版,用来提供 MQTT 服务,并验证了设备端接入和消息通信。但你发现只能在局域网内访问 emqx.local 服务,而 IoT 设备分布在全国各地公共网络环境,这些设备该如何接入呢&a…...

系统架构设计师(第二版)学习笔记----软件工程

【原文链接】系统架构设计师(第二版)学习笔记----软件工程 文章目录 一、软件工程1.1 软件危机的表现1.2 软件工程的内容 二、软件过程模型2.1 软件的声明周期2.2 瀑布模型2.3 瀑布模型的缺点2.4 原型模型2.5 原型模型开发阶段2.6 开发原型的途径2.7 螺旋…...

C与C++字符串分割方法示例汇总

在C语言中&#xff0c;没有内置的字符串分割函数。但是&#xff0c;你可以使用其他字符串操作函数和循环来实现字符串分割。这里是使用 strtok 函数在C中分割字符串的示例&#xff1a; #include <stdio.h> #include <string.h> int main() {char str[] "Hel…...

HTTP代理与VPN:网络代理技术的比较

HTTP代理和VPN是两种常见的网络代理技术&#xff0c;它们可以帮助用户隐藏自己的IP地址、保护网络隐私、绕过网络限制等。本文将介绍HTTP代理和VPN的定义、工作原理、优缺点以及使用场景。 一、HTTP代理 HTTP代理是一种通过代理服务器转发网络请求的技术。当用户发起网络请求时…...

免费低代码平台,助企业高效管理任务

编者按&#xff1a;本文主要介绍了免费的低代码平台实现了高效的任务管理系统&#xff0c;助力企业在任务管理方面的效率更上一层楼&#xff01;这个免费的低代码平台&#xff0c;将提高员工的工作效率。它不仅是一个任务管理系统&#xff0c;更是一个能让 企业 摆脱繁琐工作&a…...

基于conda的相关命令

conda 查看python版本环境 打开Anaconda Prompt的命令输入框 查看自己的python版本 conda env list激活相应的python版本(环境&#xff09; conda avtivate python_3.9 若输入以下命令可查看python版本 python -V #注意V是大写安装相应的包 pip install 包名5.查看已安装…...

【微信小程序】swiper的使用

1.swiper的基本使用 <jxz-header></jxz-header> <view class"banner"><swiperprevious-margin"30rpx"autoplayinterval"2000"indicator-dotsindicator-color"rgba(0,0,0,0.3)"indicator-active-color"#bda…...

iText实战--PDF和iText 简介

PDF可以做如下事务 iText 5步创建PDF import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter;public class PdfHelloWorld {/*** param args*/public static void main(String[]…...

「大数据-0.1」虚拟机VMware安装、配置、使用、创建大数据集群教程

目录 一、下载VMware Wworkstation Pro 16 二、安装VMware Wworkstation Pro 16 三、检查与设置VMware的网卡 1. 检查 2. 设置VMware网段 四、在VMware上安装Linux虚拟机 五、对安装好的虚拟机进行设置 1. 打开设置 2. 设置中文 3. 修改字体大小 4. 修改终端字体大小 5. 关闭虚…...

【HTTP】GET 和 POST 的区别

GET 和 POST 的区别 首先: GET 和 POST 没有本质区别, 具体来说, GET 的使用场景可替换为 POST,POST 使用的场景也可以替换为 GET. 语义上的区别: GET 通常用来获取数据, POST 通常用来上传数据. 现状是 GET 也经常用来上传数据, POST 也经常用来获取数据. 数据存放的位置不同…...

Unity Asset Bundle Browser 工具

Unity Asset Bundle Browser 工具 您可以在 Unity 项目中使用 Asset Bundle Browser 工具能够查看和编辑资源包的配置。 有关更多信息&#xff0c;请参阅 Unity Asset Bundle Browser 文档。 注意&#xff1a;此工具是不受支持的实用程序。查看极大的资源包可能会导致性能下…...

使用Linkerd实现流量管理:学习如何使用Linkerd的路由规则来实现流量的动态控制

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

1462. 课程表 IV

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;Floyd传递闭包方法二&#xff1a;拓扑排序 思考写在最后 Tag 【拓扑排序】【传递闭包】【并查集】【数组】 题目来源 1462. 课程表 IV 题目解读 给你一个表示课程先决条件的数组 prerequisites&#xff0c;prerequis…...

QTday2

完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两个按钮…...

thrift的简单使用

写在前面 本文一起看下一种由facebook出品的rpc框架thrift。 源码 。 1&#xff1a;开发步骤 1:编写thrift idl文件 2&#xff1a;根据thrift idl文件生成java模板代码 3&#xff1a;继承模板代码的*.Iface接口给出server的具体服务实现 4&#xff1a;使用模板的HelloWorldSe…...

Python实现猎人猎物优化算法(HPO)优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…...

2023年7月京东平板电脑行业品牌销售排行榜(京东销售数据分析)

鲸参谋监测的京东平台7月份平板电脑市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年7月份&#xff0c;京东平台上平板电脑的销量为68万&#xff0c;同比增长超过37%&#xff1b;销售额为22亿&#xff0c;同比增长约54%。从价格上看…...

HTML显示中文空格字符,emsp;一个中文字符,ensp;半个中文字符

&emsp;一个中文字符 &ensp;半个中文字符 <ul><li class"li">姓&emsp;&emsp;名&#xff1a;<input type"text" /></li><li class"li">手&ensp;机&ensp;号&#xff1a;<input type"…...

Python基础指令(上)

Python基础指令上 常量和表达式变量和类型1. 什么是变量2. 变量的语法2.1 定义变量2.2 使用变量 3. 变量的类型4. 为什么要有这么多类型5. 动态类型特性 注释输入输出1. 程序与用户的交互2. 通过控制台输出3. 通过控制台输入 运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. …...

Python之FastAPI返回音视频流

Python之FastAPI返回音视频流 今天想要记录一下困扰我几天的一个问题&#xff0c;关于FastAPI返回音视频流。首先FastAPI挂载静态资源其实超级简单&#xff0c;但是对于音视频流&#xff0c;如果你想要有播放进度可以拖动&#xff0c;需要单独处理。 有以下几点想跟大家分享&a…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...