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

文章目录

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

前言

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

1. 本地环境搭建

1.1 环境参数

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

1.2 搭建springboot服务项目

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

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

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

shell 复制代码
cpolar authtoken xxxxxxx
  • 简单穿透测试
shell 复制代码
cpolar http 8080

按ctrl+c退出

  • 向系统添加服务
shell 复制代码
sudo systemctl enable cpolar
  • 启动cpolar服务
shell 复制代码
sudo systemctl start cpolar
  • 查看服务状态
shell 复制代码

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

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

相关推荐
白山云北诗8 分钟前
中小企业如何做好企业官网的网络安全
网络·数据库·web安全·ddos·cc·企业网络安全
DX_水位流量监测10 分钟前
阵列雷达波测流监测技术:原理、参数与应用实践
大数据·网络·人工智能·信息可视化·数据分析
中国云报17 分钟前
构建AI时代的自动驾驶网络:HPE的匠心与巧思
网络·人工智能·机器学习·自动驾驶
ifenxi爱分析18 分钟前
智能体时代,大厂向应用层渗透的逻辑与路径
网络·人工智能
小码吃趴菜30 分钟前
TCP协议编程流程
服务器·网络·tcp/ip
Insist75335 分钟前
KingbaseES 集群运维案例之 --- 集群架构拆分为单实例操作
网络·数据库·oracle
利刃大大1 小时前
【RabbitMQ】SpringBoot整合RabbitMQ:工作队列 && 发布/订阅模式 && 路由模式 && 通配符模式
java·spring boot·消息队列·rabbitmq·java-rabbitmq
AIGCExplore1 小时前
Jenkins 自动构建编译 Spring Boot 和 Vue 项目
vue.js·spring boot·jenkins
yangminlei1 小时前
Spring Boot 自动配置原理与自定义 Starter 开发实战
java·数据库·spring boot
悟空码字1 小时前
10分钟搞定!SpringBoot集成腾讯云短信全攻略,从配置到发送一气呵成
java·spring boot·后端