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

【内网服务通过跳板机和公网通信】花生壳内网穿透+Nginx内网转发+mqtt服务搭建

问题:服务不能暴露公网

  1. 客户的主机不能连外网,服务MQTT服务部署在内网。记做:p1 (computer 1)
  2. 堡垒机(跳板机)可以连外网,内网IP 和 MQTT服务在同一个网段。记做:p2 (computer 2)
  3. 对他人而言,直接连 公网的 服务和端口,即可 和 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
  • 启动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&#xff…...

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添加用户

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…...

Newman+Jenkins实现接口自动化测试

一、是什么Newman Newman就是纽曼手机这个经典牌子&#xff0c;哈哈&#xff0c;开玩笑啦。。。别当真&#xff0c;简单地说Newman就是命令行版的Postman&#xff0c;查看官网地址。 Newman可以使用Postman导出的collection文件直接在命令行运行&#xff0c;把Postman界面化运…...

MySQL:事务+@Transactional注解

事务 本章从了解为什么需要事务到讲述事务的四大特性和概念&#xff0c;最后讲述MySQL中的事务使用语法以及一些需要注意的性质。 再额外讲述一点Springboot中Transactional注解的使用。 1.为什么需要事务&#xff1f; 我们以用户转账为例&#xff0c;假设用户A和用户B的银行账…...

数字IC手撕代码--低功耗设计 Clock Gating

背景介绍芯片功耗组成中&#xff0c;有高达 40%甚至更多是由时钟树消耗掉的。这个结果的原因也很直观&#xff0c;因 为这些时钟树在系统中具有最高的切换频率&#xff0c;而且有很多时钟 buffer&#xff0c;而且为了最小化时钟 延时&#xff0c;它们通常具有很高的驱动强度。 …...

易基因|m6A RNA甲基化研究的数据挖掘思路:干货系列

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。关于m6A甲基化研究思路&#xff08;1&#xff09;整体把握m6A甲基化图谱特征&#xff1a;m6A peak数量变化、m6A修饰基因数量变化、单个基因m6A peak数量分析、m6A peak在基因元件上的分布…...

【微信小程序】-- 页面配置(十八)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

玩好 StarRocks,大厂 offer 接不完!|字节跳动、小红书、京东物流、唯品会、腾讯音乐要的就是你!

求职黄金季即将到来&#xff0c;你准备好迎接你的 dream offer 了吗&#xff1f;StarRocks 自创立以来&#xff0c;一直主张为用户创造极速统一的数据分析新范式&#xff0c;让数据驱动创新&#xff0c;而优秀的大数据人才对推动创新有着至关重要的作用。因此&#xff0c;我们推…...

C# IoC控制反转学习笔记

一、什么是IOC IoC-Invertion of Control&#xff0c;即控制反转&#xff0c;是一种程序设计思想。 先初步了解几个概念&#xff1a; 依赖&#xff08;Dependency&#xff09;&#xff1a;就是有联系&#xff0c;表示一个类依赖于另一个类。 依赖倒置原则&#xff08;DIP&a…...

Python解题 - CSDN周赛第33期

本期四道题全考过&#xff0c;题解在网上也都搜得到。。。没有想法&#xff0c;顺手水一份题解吧。 第一题&#xff1a;奇偶排序 给定一个存放整数的数组&#xff0c;重新排列数组使得数组左边为奇数&#xff0c;右边为偶数。 输入描述&#xff1a;第一行输入整数n。(1<n<…...

Session攻击

Session攻击Session攻击简介主要攻击方式会话预测会话劫持中间人攻击会话固定Session攻击简介 Session对于Web应用是最重要的&#xff0c;也是最复杂的。对于Web应用程序来说&#xff0c;加强安全性的首要原则就是:不要信任来自客户端的数据&#xff0c;一定要进行数据验证以及…...

【Linux】Shell详解

&#x1f60a;&#x1f60a;作者简介&#x1f60a;&#x1f60a; &#xff1a; 大家好&#xff0c;我是南瓜籽&#xff0c;一个在校大二学生&#xff0c;我将会持续分享Java相关知识。 &#x1f389;&#x1f389;个人主页&#x1f389;&#x1f389; &#xff1a; 南瓜籽的主页…...

汉字找不同隐私协议

本隐私信息保护政策版本&#xff1a;2021 V1 一、重要提示 请您&#xff08;以下亦称“用户”&#xff09;在使用本平台App时仔细阅读本协议之全部条款&#xff0c;并确认您已完全理解本协议之规定&#xff0c;尤其是涉及您的重大权益及义务的加粗或划线条款。如您对协议有任…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

【前端实战】如何让用户回到上次阅读的位置?

目录 【前端实战】如何让用户回到上次阅读的位置&#xff1f; 一、总体思路 1、核心目标 2、涉及到的技术 二、实现方案详解 1、基础方法&#xff1a;监听滚动&#xff0c;记录 scrollTop&#xff08;不推荐&#xff09; 2、Intersection Observer 插入探针元素 3、基…...

EC2安装WebRTC sdk-c环境、构建、编译

1、登录新的ec2实例&#xff0c;证书可以跟之前的实例用一个&#xff1a; ssh -v -i ~/Documents/cert/qa.pem ec2-user70.xxx.165.xxx 2、按照sdk-c demo中readme的描述开始安装环境&#xff1a; https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c 2…...

Linux--vsFTP配置篇

一、vsFTP 简介 vsftpd&#xff08;Very Secure FTP Daemon&#xff09;是 Linux 下常用的 FTP 服务程序&#xff0c;具有安全性高、效率高和稳定性好等特点。支持匿名访问、本地用户登录、虚拟用户等多种认证方式&#xff0c;并可灵活控制权限。 二、安装与启动 1. 检查是否已…...