使用端口映射实现Spring Boot服务端接口的公网远程调试:详细配置与步骤解析

news2024/11/26 8:26:46

文章目录

  • 前言
  • 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来进行内网穿透,支持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

转载自cpolar内网穿透的文章:Springboot服务端接口公网远程调试,并实现HTTP服务监听

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日一招小技巧】编译安装提升系统自带的java版本

hello&#xff0c;大家好&#xff0c;又到了每日一招的环节&#xff0c;今天要给大家介绍的是&#xff0c;如何用源码安装的方式&#xff0c;升级系统自带的ava版本&#xff01; 首先&#xff0c;我们要查看一下我们系统自带的java版本是多少&#xff0c;怎么查看呢&#xff1…

『PyQt5-基础篇』| 02 Pyqt5开发环境+安装配置QtDesigner

02 Pyqt5开发环境安装配置QtDesigner 1 Pycharm安装2 Python安装3 Pip安装4 PyQt5安装5 Pycharm中编译工具设置及pyqt5包的导入6 指定Qt Designer7 指定PyUIC58 指定PyRcc59 PyInstaller安装10 查看是否配置OK 1 Pycharm安装 安装教程请参考&#xff1a;安装教程 2 Python安装…

Linux Day11---mbash项目(二)

观看本文之前请先阅读Linux Day10的相关内容 1.touch 1.1 open系统调用 int open(const char*path,int oflags,mode_t mode); oflags参数&#xff1a; O_APPEND:把写入数据追加在文件的末尾 O_TRUNC:把文件长度设置为0&#xff0c;丢弃已有的内容 O_CREAT:如果需要&#…

Oracle数据库sqlplus命令行执行sql语句时,语句有中文报错解决

在Oracle数据库sqlplus命令行执行sql语句时&#xff0c;语句有中文报错解决 -- 建表语句 create table T_ADEV_SCLG_YXDXMB (obj_id VARCHAR2(42) not null,xmmc VARCHAR2(400),xmbh VARCHAR2(100),jhnd INTEGER,gsmc VARCHAR2(50),xmssdwmc VARCHAR2…

如何从用户视角搭建可观测体系?阿里云ECS业务团队的设计思路

一分钟精华速览 互联网平台以业务为中心&#xff0c;以用户为中心&#xff0c;平台的功能服务、质量和用户体验等是关键的目标&#xff0c;仅仅关注后台系统的可用性是不够的&#xff0c;以传统运维的视角来解决故障、做监控会比较被动。 本文以阿里云 ECS 业务为例&#xff…

医院设备电力中断?如何改善UPS系统?教你一招

当今医疗体系紧密依赖于电力供应的稳定性&#xff0c;以保障医疗设备的正常运行和患者的安全。然而&#xff0c;电力中断或波动可能会带来严重的风险&#xff0c;因此&#xff0c;不间断电源&#xff08;UPS&#xff09;系统在医院中扮演着至关重要的角色。 为确保UPS系统的高效…

Java在项目中覆盖Jar包中的类

import cn.hutool.core.util.StrUtil;public class CoverJarTest {public static void main(String[] args) {System.out.println(StrUtil.toString("1"));} }输出1 我们将hutool的包名在我们的项目中创建一个&#xff0c;并且将对应类的源码复制一份过来&#xff0c…

Echarts图表坐标轴文字太长,省略显示,鼠标放上显示全部(vue)

注意&#xff1a;记得加上这个&#xff0c;触发事件&#xff0c; triggerEvent: true,重点&#xff1a;下面就是处理函数&#xff0c;在实例化图表的时候使用&#xff0c;传入参数是echarts的实例 // 渲染echartsfirstBarChart() {const that thislet columnar echarts.init…

Typecho博客搭建 实现公网访问内网站点

文章目录 前言1. 环境安装2.安装Typecho3.安装cpolar内网穿透4. 固定公网地址5.配置Typecho 前言 Typecho是一款PHP语言编写的开源博客程序&#xff0c;它是一个轻量级的内容管理系统&#xff0c;专注于博客领域。支持多用户、多站点、多语言等功能&#xff0c;可以满足不同用…

多模态(文本、图片)数据融合模型(含公开数据集、文献及开源代码汇总)

多模态&#xff08;文本、图片&#xff09;数据融合模型&#xff08;含公开数据集、文献及开源代码汇总&#xff09; <center>多模态模型的应用跑代码普遍存在的问题 <center>多模态公开数据集<center>文献及开源代码 多模态模型的应用 多模态模型的应用按照…

zabbix3.4配置客户端

1.安装agent yum -y install zabbix zabbix-agent如果下载不动或者无外网环境请看 https://download.csdn.net/download/qq_45748758/88228235?spm1001.2014.3001.5501 免费自取 2、配置zabbix-agent&#xff0c;修改图片三个参数 vi /etc/zabbix/zabbix_agentd.conf3、启动…

WebDAV之葫芦儿·派盘+柚子记账

柚子记账是一个手机记账的软件,这个软件主要是给那些懒人进行设计的,这里有很多关于记账的模板可以让你直接在线使用,你只需要导入相关的数据就可以了,整个操作是非常简单的,而且你也可以进行自定义的图表制作,生成你自己的记账模式。每当你记完之后,系统都会自动给你总…

【excel密码】加密excel工作表的3种方法

Excel文件经常用于处理数据文件&#xff0c;在完成编辑之后&#xff0c;对文件进行加密可以更好的保护数据&#xff0c;今天分享加密excel工作表的3种方法。 打开密码 设置了打开密码的excel文件&#xff0c;打开文件就会提示输入密码才能打开excel文件&#xff0c;只有输入了…

档案馆库房温湿度监控系统技术性【解决方案】

档案存储环境会受诸多因素的影响,其中最为主要的因素就是档案库房的温度与湿度。其中&#xff0c;库房的温度指得是档案库房内大气的冷热程度&#xff1b;湿度是指库房大气中的水分含量。保持档案库房内环境恒温恒湿,不仅可以保障档案的保存质量&#xff0c;而且可以延长档案保…

linux中模拟RTOS中事件集

linux中通常如何处理事件集 在Linux中&#xff0c;没有直接对应于实时操作系统&#xff08;RTOS&#xff09;中事件集&#xff08;Event Set&#xff09;的概念。实时操作系统通常提供了一种机制&#xff0c;允许任务或线程根据事件的发生状态进行等待和唤醒。这通常通过信号量…

CW2B-3A-T、CW2B-6A-T、CW2B-10A-T插座式滤波器

CW2B-3A-T、CW2B-6A-T、CW2B-10A-T CW2B-3A-T(001)、CW2B-6A-T(001)、CW2B-10A-T(001) CW2B-3A-T(002)、CW2B-6A-T(002)、CW2B-10A-T(002) CW2B-3A-T(003)、CW2B-6A-T(003)、CW2B-10A-T(003) CW1D-3A-T、CW1D-6A-T、CW1D-10A-T CW2B-3A-T(004)、CW2B-6A-T(004)、CW2B-10A-…

基于ssm vue智慧城市实验室主页系统源码和论文

基于ssm vue智慧城市实验室主页系统源码和论文059 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方…

【Maven教程】(三)基础使用篇:入门使用指南——POM编写、业务代码、测试代码、打包与运行、使用Archetype生成项目骨架~

Maven基础使用篇 1️⃣ 编写 POM2️⃣ 编写业务代码3️⃣ 编写测试代码4️⃣ 打包和运行5️⃣ 使用 Archetype生成项目骨架 1️⃣ 编写 POM 到目前为止&#xff0c;已经大概了解并安装好了Maven环境, 现在&#xff0c;我们开始创建一个最简单的 Hello World 项目。如果你是初次…

使用Selenium爬取动态表格中的多语言和编码格式

正文 Selenium是一个用于自动化Web浏览器的工具&#xff0c;它可以模拟用户的操作&#xff0c;如点击、输入、滚动等。Selenium也可以用于爬取网页中的数据&#xff0c;特别是对于那些动态生成的内容&#xff0c;如表格、图表、下拉菜单等。本文将介绍如何使用Selenium Python…

Jmeter 如何才能做好接口测试?

现在对测试人员的要求越来越高&#xff0c;不仅仅要做好功能测试&#xff0c;对接口测试的需求也越来越多&#xff01; 所以也越来越多的同学问&#xff0c;怎样才能做好接口测试&#xff1f; 要真正的做好接口测试&#xff0c;并且弄懂如何测试接口&#xff0c;需要从如下几…