Redian新闻
>
如何通过内网穿透实现外部网络对 SpringBoot 接口的 HTTP 监听和调试?

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

公众号新闻

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

来源:blog.csdn.net/ks_wyf/
article/details/132559479


前言

前后端分离项目中,在调用接口调试时候,我们可以通过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

简单穿透测试

cpolar http 8080

按ctrl+c退出

向系统添加服务

sudo systemctl enable cpolar

启动cpolar服务

sudo systemctl start cpolar

查看服务状态

2.2 创建隧道映射本地端口

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

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

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

点击创建

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

2.3 测试公网地址

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

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

3. 固定公网地址

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

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

3.1 保留一个二级子域名

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

3.2 配置二级子域名

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

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

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

点击更新

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

3.2 测试使用固定公网地址

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

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

4. Cpolar监听器

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

4.1 开启侦听功能

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

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

4.2 请求侦听

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

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


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
大模型训练之序列并行双雄:DeepSpeed Ulysses和Ring-Attention(待会删) 粉丝永久白嫖,最新发现外卖漏洞,请低调使用!SpringBoot Redis 分布式锁的正确实现方式雷神 AIbook 15 轻薄本上架预约:OCuLink 接口、RGB 背光键盘、酷睿 Ultra7SpringBoot 容器镜像更新只要200k,你敢信???纪录片如何通过剪辑建立叙事?Spring Boot 3.2 和 Spring Framework 6.1添加对 Java 21、虚拟线程和 CRaC 的支持顶刊TPAMI 2024!北大林宙辰团队提出具有万有逼近性质的神经网络架构的设计方法如何通过饮食提高生育能力越南旧政权的鈔票。 音樂:Romance De Lamour闹大了!66升油箱加出67升汽油,车主报警后,员工火速开机调试有了它之后,再也没穿过内衣!ICLR 2024 Spotlight | 无惧中间步骤,MUSTARD可生成高质量数学推理数据英国星巴克送杯子!PrettyLittleThing限时1折!山大王精选1折起!消息称英伟达 Blackwell“B100”GPU 将配 192GB HBM3e 显存,B200 配 288GB 显存如何通过品牌思维实现自我成长?湖南大学聂舟团队Angew |工程化Anti-CRISPR蛋白创建CRISPR-Cas蛋白开关用于激活型基因编辑和病毒蛋白酶检测Property to Virtual Goods, More Young Chinese Are Drafting Wills​Everyone Is Fighting Some Kind of BattleBB鸭 | 淘宝客服回应免单BUG;华为新麒麟CPU已调试好;蔚来旗下乐道汽车官网上线;朱晓彤将回归特斯拉中国【Reminder】| Sign-Up the LEAP Consulting Boot CampHttp压测工具wrk使用指南SpringCloud 整合 Canal+RabbitMQ+Redis 实现数据监听如何优雅地实现接口统一调用转型有道 | 不确定的时代,如何通过转型增强竞争力?幻想破灭?仅依赖刷题,能否通过CFA考试?2024神奇魔幻哥伦比亚(二)波哥大:Monserrate Mountainspring是“春天”,chicken是“鸡”,那spring chicken什么意思?SpringBoot接口添加IP白名单限制【Poem Reading Tuesday】all the time I pray to Buddha by Kobayashi【草与花的思索】【LEAP ACE】| Sign-Up the Consulting Boot Camp电话彩铃(小小说)squid代理http和https方式上网的操作记录为什么建议你替换掉 SpringBoot 框架中的 Tomcat ?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。