【内网服务通过跳板机和公网通信】花生壳内网穿透+Nginx内网转发+mqtt服务搭建
问题:服务不能暴露公网
- 客户的主机不能连外网,服务MQTT服务部署在内网。记做:p1 (computer 1)
- 堡垒机(跳板机)可以连外网,内网IP 和 MQTT服务在同一个网段。记做:p2 (computer 2)
- 对他人而言,直接连 公网的 服务和端口,即可 和 p1 通信。
1. 跳板机 安装Nginx
- 去官网下载Nginx
- 配置 监听的端口,可参考如下文档,不看也行
https://blog.csdn.net/qq_41113081/article/details/120713419
- 就是简单的改下配置文件,如下
include tcp.conf;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#这个配置无用吧,这是http的server_tokens off;}
- 当前目录下 新建 tcp.conf
- server 192.168.30.192:7788;
- 配置:p1(有mqtt服务的主机) 的 IP 和 端口
- 因为 访问到这台主机(p2)的 都要转发给 它
- 注意 p1 要开通端口(我本地测试,直接关闭防火墙即可)
- listen 7777;
- 本机对外暴露的端口,7777。
- 就是 别人访问 7777 端口,即可跳转到 192.168.30.192:7788
- server 192.168.30.192:7788;
- 启动Nginx 即可。
stream {upstream mqtttest {# 目标 redis server ip和hostserver 192.168.30.192:7788;}server {# 要监听的外部端口,比如你的域名是www.baidu.com,那么你本地连接redis的时候,host就填www.baidu.com,端口8899listen 7777;proxy_pass mqtttest;}
}
2. 安装 花生壳
-
测试 ngrok 好像用不了 tcp 内网穿透,但花生壳可以。
-
下载好后,实名认证,添加自定义映射(官网有教程)
-
本机IP 就是设置 自己主机(p2)的IP,端口设置为 7777
- 让 外网能访问到 自己的7777端口。
-
因为没有花钱,外网的 域名和端口如下
-
注意点:协议一定选 TCP,因为mqtt底层依然是 TCP
6g8231567p.zicp.fun:5748192.168.30.36 本机p2的IP
7777 本机p2的端口
- 开启 花生壳的自定义 映射。
3. 课外 mqtt服务端搭建
- 也可以自己搭建一个 mqtt服务器。
- 使用软件为:mosquitto,参考文档。
https://blog.csdn.net/zlbdmm/article/details/125297796
-
修改:配置文件 mosquitto.conf
- listener 7788
- allow_anonymous true
- 就不要密码了
-
在管理工具->服务,中找到Mosquitto Broker,启动mosquitto服务
-
使用 CMD窗口进行订阅
- 没用用户名密码,去掉这些参数即可。
- -v 进行订阅
mosquitto_sub.exe -h 127.0.0.1 -p 7788 -u admin -P 123456 -v -t sensor
- 使用 CMD 窗口进行发布
- -t进行发布 -m是消息内容
mosquitto_pub.exe -h 127.0.0.1 -p 7788 -u admin -P 123456 -t sensor -m “消息测试”
-
最后使用 MQTTX 进行测试
-
点击“New Connection”按钮,则出现新建连接对话框,根据MQTT服务器的信息,输入对应的参数
-
如果想订阅一个主题,则点击“New Subscription”按钮,则出现新建订阅对话框
- 订阅上面的:t sensor 即可。
4. MQTTX 进行测试
-
点击链接,名称随便起
-
服务器地址为:
- mqtt:// 默认的
- 6g8231567p.zicp.fun (就是上面 花生壳 对外访问的地址)
-
端口为:57482,花生壳 提供的
-
点击链接,链接成功后,即可给 p1 主机发送 消息。
- 同理 添加了 订阅后,即可收到 消息。
- 使用 p1 cmd 窗口,发送 mqtt消息。
- 这个 依然能收到 内网的消息。
5. 总结
-
客户主机 p1
-
跳板机 p2
- 安装 花生壳
- 安装 nginx
-
对外用户
-
访问流程:
- 对外用户访问——>花生壳——>Nginx——>客户主机
- Nginx 暴露 7777端口,供花生壳 访问
- 访问了 7777 端口,Nginx 转发到 p1 的 IP 和 端口
-
实现了:只需要给 对外用户一个,花生壳 的 域名和端口
- 他 即可连接到 mqtt服务,能接受 和 发送 消息。
- 对外用户:直接能 和 p1 进行通信。
相关文章:
【内网服务通过跳板机和公网通信】花生壳内网穿透+Nginx内网转发+mqtt服务搭建
问题:服务不能暴露公网 客户的主机不能连外网,服务MQTT服务部署在内网。记做:p1 (computer 1)堡垒机(跳板机)可以连外网,内网IP 和 MQTT服务在同一个网段。记做:p2 (computer 2)对他人而言&…...
【多线程常见面试题】
谈谈 volatile关键字的用法? volatile能够保证内存可见性,强制从主内存中读取数据,此时如果有其他线程修改被volatile修饰的变量,可以第一时间读取到最新的值 Java多线程是如何实现数据共享的? JVM把内存分成了这几个区域: 方法区,堆区,栈区,程序计数器; 其中堆区…...
深度剖析指针(下)——“C”
各位CSDN的uu们你们好呀,今天小雅兰的内容还是我们的指针呀,上两篇博客我们基本上已经把知识点过了一遍,这篇博客就让小雅兰来带大家看一些和指针有关的题目吧,现在,就让我们进入指针的世界吧 复习: 数组和…...
爬虫与反爬虫技术简介
互联网的大数据时代的来临,网络爬虫也成了互联网中一个重要行业,它是一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分。通过爬虫,可以获取自己想要的相关数据信息,让爬虫协助自己的工作,…...
Pag的2D渲染执行流程
Pag的渲染 背景 根据Pag文章里面说的,Pag之前长时间使用的Skia库作为底层渲染引擎。但由于Skia库体积过大,为了保证通用型(比如兼容CPU渲染)做了很多额外的事情。所以Pag的工程师们自己实现了一套2D图形框架替换掉Skiaÿ…...
k8s 概念说明,k8s面试题
什么是Kubernetes? Kubernetes是一种开源容器编排系统,可自动化应用程序的部署、扩展和管理。 Kubernetes 中的 Master 组件有哪些? Kubernetes 中的 Master 组件包括 API Server、etcd、Scheduler 和 Controller Manager。 Kubernetes 中的…...
Docker--(四)--搭建私有仓库(registry、harbor)
私有仓库----registry官方提供registry仓库管理(推送、删除、下载)私有仓库----harbor私有镜像仓库1.私有仓库----registry官方提供 Docker hub官方已提供容器镜像registry,用于搭建私有仓库 1.1 镜像拉取、运行、查看信息、测试 (一) 拉取镜像 # dock…...
Invalid <url-pattern> [sso.action] in filter mapping
Tomcat 8.5.86版本启动web项目报错Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [sso.action] in filter mapping 查看项目的web.xml文件相关片段 <filter-mapping><filter-name>SSOFilter</filter-name><url-pattern&g…...
【11】linux命令每日分享——useradd添加用户
大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…...
Newman+Jenkins实现接口自动化测试
一、是什么Newman Newman就是纽曼手机这个经典牌子,哈哈,开玩笑啦。。。别当真,简单地说Newman就是命令行版的Postman,查看官网地址。 Newman可以使用Postman导出的collection文件直接在命令行运行,把Postman界面化运…...
MySQL:事务+@Transactional注解
事务 本章从了解为什么需要事务到讲述事务的四大特性和概念,最后讲述MySQL中的事务使用语法以及一些需要注意的性质。 再额外讲述一点Springboot中Transactional注解的使用。 1.为什么需要事务? 我们以用户转账为例,假设用户A和用户B的银行账…...
数字IC手撕代码--低功耗设计 Clock Gating
背景介绍芯片功耗组成中,有高达 40%甚至更多是由时钟树消耗掉的。这个结果的原因也很直观,因 为这些时钟树在系统中具有最高的切换频率,而且有很多时钟 buffer,而且为了最小化时钟 延时,它们通常具有很高的驱动强度。 …...
易基因|m6A RNA甲基化研究的数据挖掘思路:干货系列
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。关于m6A甲基化研究思路(1)整体把握m6A甲基化图谱特征:m6A peak数量变化、m6A修饰基因数量变化、单个基因m6A peak数量分析、m6A peak在基因元件上的分布…...
【微信小程序】-- 页面配置(十八)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...
玩好 StarRocks,大厂 offer 接不完!|字节跳动、小红书、京东物流、唯品会、腾讯音乐要的就是你!
求职黄金季即将到来,你准备好迎接你的 dream offer 了吗?StarRocks 自创立以来,一直主张为用户创造极速统一的数据分析新范式,让数据驱动创新,而优秀的大数据人才对推动创新有着至关重要的作用。因此,我们推…...
C# IoC控制反转学习笔记
一、什么是IOC IoC-Invertion of Control,即控制反转,是一种程序设计思想。 先初步了解几个概念: 依赖(Dependency):就是有联系,表示一个类依赖于另一个类。 依赖倒置原则(DIP&a…...
Python解题 - CSDN周赛第33期
本期四道题全考过,题解在网上也都搜得到。。。没有想法,顺手水一份题解吧。 第一题:奇偶排序 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。 输入描述:第一行输入整数n。(1<n<…...
Session攻击
Session攻击Session攻击简介主要攻击方式会话预测会话劫持中间人攻击会话固定Session攻击简介 Session对于Web应用是最重要的,也是最复杂的。对于Web应用程序来说,加强安全性的首要原则就是:不要信任来自客户端的数据,一定要进行数据验证以及…...
【Linux】Shell详解
😊😊作者简介😊😊 : 大家好,我是南瓜籽,一个在校大二学生,我将会持续分享Java相关知识。 🎉🎉个人主页🎉🎉 : 南瓜籽的主页…...
汉字找不同隐私协议
本隐私信息保护政策版本:2021 V1 一、重要提示 请您(以下亦称“用户”)在使用本平台App时仔细阅读本协议之全部条款,并确认您已完全理解本协议之规定,尤其是涉及您的重大权益及义务的加粗或划线条款。如您对协议有任…...
CEC2017:斑马优化算法(Zebra Optimization Algorithm,ZOA)求解cec2017(提供MATLAB代码)
一、斑马优化算法 斑马优化算法(Zebra Optimization Algorithm,ZOA)Eva Trojovsk等人于2022年提出,其模拟斑马的觅食和对捕食者攻击的防御行为。 斑马因身上有起保护作用的斑纹而得名。没有任何动物比斑马的皮毛更与众不同。斑…...
【Linux要笑着学】进程创建 | 进程终止 | slab分派器
爆笑教程《看表情包学Linux》👈 猛戳订阅!💭 写在前面:本章我们主要讲解进程的创建与终止。首先讲解进程创建,fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数&#…...
数据资产管理建设思考(二)
关于数据资产管理,近两年是数据治理行业中一个热点话题,当然有我们前面提到的国家的政策支持及方向指引的原因。另一方面我们做数据治理的同行们从学习吸收国外优秀的数据治理理论,进一步在实践中思考如何应用理论,并结合我们国家…...
微软发布多模态版ChatGPT!取名“宇宙一代”
文|CoCo酱Ludwig Wittgenstein曾说过:“我语言的局限,即是我世界的局限”。大型语言模型(LLM)已成功地作为各种自然语言任务的通用接口,只要我们能够将输入和输出转换为文本,就可以将基于LLM的接…...
【学习笔记】深入理解JVM之对象的实例化
参考尚硅谷JVM 102 - 106 集 首发地址:地址 1、JVM对象的实例化 1.1 对象的创建方式 对象有一下几种创建对象的方式 new Object object new Object();Class的newInstance() Object object Object.class.newInstance();Constructor的newInstance(…...
IP协议的漏洞及防护措施
文章目录一、TCP/IP协议族二、IP协议三、IP协议的安全问题及防护措施一、TCP/IP协议族 二、IP协议 网际协议(Internet Protocol,IP)是TCP/IP协议族的核心,也是网际层最重要的协议。 IP数据报由首部和数据两部分组成;…...
Linux命令·mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。1.命令格式:mkdir [选项] 目录...2.命令功能:通过 mkdir 命令可以实现…...
智能家居项目(八)之树莓派+摄像头进行人脸识别
目录 1、编辑Camera.c 2、编辑contrlDevices.h 3、编辑mainPro.c 4、进行编译: 5、运行结果: ./test1 6、项目图片演示 智能家居项目(七)之Libcurl库与HTTPS协议实现人脸识别_Love小羽的博客-CSDN博客 经过上一篇文章&…...
渗透测试之地基服务篇:无线攻防之钓鱼无线攻击(上)
简介 渗透测试-地基篇 该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。 请注意 : 本文仅用于技术讨论与研究,对于所有笔记中复现…...
「ABAP」一文带你入门OPEN SQL中的SELECT查询(附超详细案例解析)
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…...
如何做微网站/宁德市有几个区几个县
Description 南水北调工程是优化水资源配置、促进区域协调发展的基础性工程,是新中国成立以来投资额最大、涉及面最广的战略性工程,事关中华民族长远发展。 “南水北调工程”,旨在缓解中国华北和西北地区水资源短缺的国家战略性工程。就是把中…...
做一件代发哪个网站好/百度官网认证入口
本文记录下在使用刷Leetcode的一些记录,主要使用变成语言为Python3。 tree的定义: Python中二叉树的定义 class TreeNode:def __init__(self, x):self.val xself.left Noneself.right None 复制代码其他编程语言常见的定义: 内存模型&…...
flickr wordpress/社群营销的具体方法
IP Messenger是一款局域网内部聊天、文件传输工具,具有很多优点,如数据通讯不需要建立服务器、直接在两台电脑间通信和数据传输,支持文件及文件目录的传输,安全快捷以及小巧方便等优异特点,因此很多公司都采用它作为部…...
广州网站制作联系方式/一个新手怎么做推广
tail -f localhost_access_log.2018-12-11.txt(当前时间)今天的实时日志,操作一下系统,就会报出相应的日志 转载于:https://www.cnblogs.com/feifeicui/p/11351889.html...
网站建设用什么开源程序好/成都sem优化
1、取整 1.1 向下取整 Math.floor() 和 parseInt() Math.floor(2.345) // 2 parseInt(2.345) // 21.2 向上取整 Math.ceil Math.ceil(2.345) // 31.3 四舍五入取整 Math.round(2.5) // 3 Math.round(2.45) // 22、四舍五入保留小数点后n位 (2.35).toFixed(1) // 2.4 (2.351…...
绵阳的网站制作公司哪家好/52种新颖的促销方式
已经同步到个人博客,欢迎访问 知识点 class内部默认是严格模式class定义的原型方法的可枚举行. Proxy 题目 首先看这样一个引子: const name window; let obj {name: jay,say() {console.log(this.name)} };obj.say(); let say obj.say; say();两…...