如何通过内网穿透实现外部网络对Spring Boot服务端接口的HTTP监听和调试?

文章目录

  • 前言
  • 1. 本地环境搭建
    • 1.1 环境参数
    • 1.2 搭建springboot服务项目
  • 2. 内网穿透
    • 2.1 安装配置cpolar内网穿透
      • 2.1.1 windows系统
      • 2.1.2 linux系统
    • 2.2 创建隧道映射本地端口
    • 2.3 测试公网地址
  • 3. 固定公网地址
    • 3.1 保留一个二级子域名
    • 3.2 配置二级子域名
    • 3.2 测试使用固定公网地址
  • 4. Cpolar监听器
    • 4.1 开启侦听功能
    • 4.2 请求侦听

前言

前后端分离项目中,在调用接口调试时候,我们可以通过cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试,本次教程我们以Java服务端接口为例。

1. 本地环境搭建

1.1 环境参数

  • JDK1.8
  • IDEA
  • SpringBoot
  • Maven
  • Tomcat9.0
  • Postman

1.2 搭建springboot服务项目

搭建一个springboot服务的项目,编写一个接口,为了更好直观看到,这里创建一个pos请求的接口

@RestController
@RequestMapping("/test")
public class InterfaceTest {/*** 测试接口* @param data* @return Map<String,String>*/@PostMapping("/interTest")public Map<String,String>interTest(@RequestBody Map<String,String> data){System.out.println(data);if (data.size()>0){return  data;}data.put("code","404");return data;}
}

2. 内网穿透

这里我们使用[cpolar](博客 - cpolar 极点云)来进行内网穿透,支持http/https/tcp协议,不限制流量,无需公网IP,也不用设置路由器,使用简单。

2.1 安装配置cpolar内网穿透

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

2.1.1 windows系统

进入cpolar官网后,下载windows版本版本,双击安装包一路默认安装即可。

2.1.2 linux系统

  • cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或 cpolar短链接安装方式:(国外使用)
curl -sL https://git.io/cpolar | sudo bash
  • 查看版本号,有正常显示版本号即为安装成功
cpolar version
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里

cpolar authtoken xxxxxxx

20230417112726

  • 简单穿透测试
cpolar http 8080

按ctrl+c退出

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar
  • 查看服务状态

20230417112718

2.2 创建隧道映射本地端口

cpolar安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录。

20230130105810

点击左侧仪表盘的隧道管理——创建隧道,创建一个tomcat的8080端口 http隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:8080
  • 域名类型:免费选择随机域名
  • 地区:选择China vip

点击创建

20230130105901

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址

20230130105902

2.3 测试公网地址

这里以Postman接口调试工具向接口发送请求,在postman创建一个post请求方式.输入复制的公网地址加上接口路径,参数使用JSON格式,设置好参数点击

20230130105903

在服务接口端debug调试接口,查看请求是否进入接口,进入接口表示调用成功

20230130105904

3. 固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

3.1 保留一个二级子域名

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

20230130105905

3.2 配置二级子域名

访问http://127.0.0.1:9200/,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的8080隧道,点击右侧的编辑

20230130105906

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名,本例为test01

点击更新

20230130105907

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留过的二级子域名名称,将其复制下来

20230130105908

3.2 测试使用固定公网地址

打开postman,使用固定http地址进行调用

20230130105909

同样在服务端debug调试查看请求是否进入接口,进入接口表示成功

20230130105910

4. Cpolar监听器

我们还可以使用cpolar监听器(http://localhost:4040)查看接口请求日志,处理一个讨厌的bug。甚至可以重播请求消息包,加速测试的请求,单击重放(Replay)按钮,重新发送该HTTP信令请求,而不是手动重新触发操作。下面介绍使用cpolar监听器监听请求。

4.1 开启侦听功能

选择我们刚刚创建配置的http隧道,并点击右侧的编辑

20230130105911

打开高级设置,开启侦听功能

20230130105912

4.2 请求侦听

在浏览器访问本地4040端口,http://localhost:4040

20230130105913

向服务端发送请求后,此处就会显示相关的请求日志,可以看到请求的方式,请求的数据,接口路径,和返回状态及结果,极大提高了调试效率。

20230130105914

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/92463.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇文章带你了解-selenium工作原理详解

前言 Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Mozilla Firefox&#xff0c;Safari&#xff0c;Google Chrome&#xff0c…

Spring Security存在认证绕过漏洞 CVE-2021-22096

文章目录 0.前言1.参考文档2.基础介绍漏洞影响范围&#xff1a;官方说明&#xff1a;修复版本&#xff1a;漏洞利用步骤&#xff1a;修复方式&#xff1a; 3.解决方案 0.前言 背景&#xff1a;项目被扫到Spring Boot 的漏洞&#xff0c;严格的说应该是Spring Security 组件的漏…

FPGA时序分析与约束(1)——组合电路时序

写在最前面&#xff1a; 关于时序分析和约束的学习似乎是学习FPGA的一道分水岭&#xff0c;似乎只有理解了时序约束才能算是真正入门了FPGA&#xff0c;对于FPGA从业者或者未来想要从事FPGA开发的工程师来说&#xff0c;时序约束可以说是一道躲不过去的坎&#xff0c;所以从这篇…

ZKP硬件加速

1. 引言 本文重点关注&#xff1a; 1&#xff09;何为硬件加速&#xff1f;为何需要硬件加速&#xff1f;2&#xff09;ZKP的关键计算原语&#xff1a; Multiscalar MultiplicationNumber Theoretic TransformationArithmetic Hashes 3&#xff09;所需的硬件资源4&#xff0…

ant-vue1.78版a-auto-complete表单自动搜索返回列表中的关键字标红

a-auto-complete表单自动搜索返回列表中的关键字标红 通常在做关键字标红的场景&#xff0c;都是后端返回html结构&#xff0c;前端直接渲染实现&#xff0c;但是如果需要前端处理的话&#xff0c;实现也是很简单的&#xff0c;接下来我直接上应用场景吧 应用场景就是通过关键…

Three.js实现模型,模型材质可拖拽效果 DragControls

Three.js提供了一个拖拽的API DragControls 用于实现模型材质拖拽效果 DragControls&#xff1a;是一个用于在Three.js中实现拖拽控制的辅助类。它简化了在Three.js中实现拖拽物体的过程。 DragControls的构造函数接受三个参数&#xff1a; objects&#xff1a;一个包含需要…

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像...

原文链接&#xff1a;http://tecdat.cn/?p24346 在今天产品高度同质化的品牌营销阶段&#xff0c;企业与企业之间的竞争集中地体现在对客户的争夺上&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 “用户就是上帝”促使众多的企业不惜代价去争夺尽可能多的客…

(笔记三)opencv图像基础操作

强调&#xff1a;本文只为学习记录做笔记 详细可参考opencv官网 &#xff1a;https://docs.opencv.org/4.1.1/d0/d86/tutorial_py_image_arithmetics.html &#xff08;1&#xff09;将cv2的BGR模式改为RGB模式 #!/usr/bin/env python # -*- coding:utf-8 -*- ""&q…

【Go 基础篇】Go语言数组内存分析:深入了解内部机制

在Go语言中&#xff0c;数组是一种基本的数据结构&#xff0c;用于存储一系列相同类型的元素。虽然数组在应用中非常常见&#xff0c;但了解其在内存中的存储方式和分配机制仍然是一个重要的课题。本文将深入探讨Go语言数组的内存分析&#xff0c;揭示数组在内存中的布局和分配…

微信小程序 - 2023年最新版手机号快捷登录详细教程

前言 最近开发公司手机快捷登录的功能&#xff0c;花费了不少时间&#xff0c;这里附上详细教程。 这里以海底捞小程序的图片为例&#xff0c;如有侵权请联系小编删除。 代码如下 <button open-type"getPhoneNumber" getphonenumber"getPhoneNumber"…

【事务】事务特性、隔离级别、传播属性、失效场景理解及场景模拟

文章目录 事务四大特性通过什么实现特性&#xff1f; 事务隔离级别为什么要设置隔离级别&#xff1f;如何设置隔离级别&#xff1f;事务并发问题模拟&#xff1f;读未提交1.脏读&#xff1a;2.不可重复读&#xff1a;3.幻读&#xff1a; 如何解决事务并发啊&#xff1f; 事务传…

驶向高效运营,StarRocks 助力蔚来汽车数据分析再升级

作者&#xff1a;蔚来汽车数字化业务发展部大数据团队 小编导读&#xff1a; 蔚来汽车是一家全球化的智能电动汽车公司&#xff0c;是高端智能汽车市场的先驱及领跑者。蔚来致力于通过提供高性能的智能电动汽车与极致用户体验&#xff0c;为用户创造愉悦的生活方式。 为了提升…