首页 > 其他分享 >springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】

时间:2023-09-07 15:02:06浏览次数:44  
标签:HTTP springboot 公网 http 接口 域名 cpolar 隧道 端口映射


前言

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

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_子域名

  • 简单穿透测试
cpolar http 8080

按ctrl+c退出

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_子域名_02

2.2 创建隧道映射本地端口

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

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

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

点击创建

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_二级_03

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_内网穿透_04

2.3 测试公网地址

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_内网穿透_05

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_子域名_06

3. 固定公网地址

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

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

3.1 保留一个二级子域名

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_内网穿透_07

3.2 配置二级子域名

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_内网穿透_08

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

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

点击更新

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_内网穿透_09

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_子域名_10

3.2 测试使用固定公网地址

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_内网穿透_11

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_内网穿透_12

4. Cpolar监听器

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

4.1 开启侦听功能

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_子域名_13

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_子域名_14

4.2 请求侦听

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_二级_15

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

springboot 服务端接口公网远程调试﹣实现 HTTP 服务监听【端口映射】_子域名_16

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

标签:HTTP,springboot,公网,http,接口,域名,cpolar,隧道,端口映射
From: https://blog.51cto.com/hwuu/7397317

相关文章

  • springboot打包运行失败
    没有包含启动类的class添加mavenpom.xml;`org.springframework.bootspring-boot-maven-plugin${spring-boot.version}com.hidisp.HidispApplication<!--issue:SpringBoot-0.0.1-SNAPSHOT.jar中没有主清单属性 resolve:①注释掉,或者②将skip值改为......
  • springboot项目自动运行脚本
    注意文件格式unix格式(Windowscrlf换行符有不可见字符)#!/bin/sh#服务名(要与配置文件中的server名保持一致)APP_NAME=""#git本地仓库路径GIT_RESPOSITORY=""#配置文件存储位置PROFILE_LOCATION=""#配置文件名PROFILE_NAME=""#日志文件存储位置LOG_LOCATION="......
  • HTTPS加密协议详解:HTTPS性能与优化
    1、HTTPS性能损耗前文讨论了HTTPS原理与优势:身份验证、信息加密与完整性校验等,且未对TCP和HTTP协议做任何修改。但通过增加新协议以实现更安全的通信必然需要付出代价,HTTPS协议的性能损耗主要体现如下:(1).增加延时分析前面的握手过程,一次完整的握手至少需要两端依次来回两次通信,至......
  • springBoot long类型 长id 到前端丢失精度问题
    在SpringBoot中,如果将Long类型的id传递到前端,可能会遇到精度丢失的问题。这是因为JavaScript无法精确地表示大于Number.MAX_SAFE_INTEGER(即9007199254740991)的整数。为了解决这个问题,你可以采用以下方法之一:方式1:通过注解方式@Data@EqualsAndHashCode(callSuper=false)......
  • SpringBoot学习之配置MyBatis常见异常
    Invalidboundstatement(notfound)出现原因和解决方法: 常见原因:1.mapper.xml中namespace和实际mapper接口所在的位置不一致。2.mapper.xml中的id名称和maapper接口中的方法名称不一致。3.如果上述两点都没有问题,那么大概率是application配置文件有配置错误。 程序和S......
  • HTTPS加密协议详解:TLS/SSL握手过程
    1、握手与密钥协商过程基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。(1).client_hello客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下:支持的最高TSL协议版本version,从低到高依次SSLv2SS......
  • HTTPS 的加密流程
    在网络上如果进行明文传输数据,是非常危险的操作,只有加密操作才能保证安全加密方式大致分为两类 对称加密:对称加密就是通过同一个密钥,把明文加密为密文,并且也能将密文解密成明文但是由于客户端生成密钥,需要发送给服务器,此时密钥只能明文传输,密钥可能被黑客截取为了使密钥更安全的......
  • springboot vue人事管理系统源码
    开发环境及工具:大等于jdk1.8,大于mysql5.5,idea(eclipse),nodejs,vscode(webstorm)技术说明:springbootmybatisvueelementui代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。功能介绍:员工端:考勤打卡:定位当前位置,打卡需要在打卡范围内才可打卡(后台设置打卡范围)我的......
  • 你知道HTTP与HTTPS有什么区别吗?
    每天都在上网,在搜索东西的时候,你有发现网址有什么不同吗?本文就来谈谈HTTP与HTTPS有什么不同。一、什么是HTTP?HTTP是“HyperTextTransferProtocol”的简称,翻译过来就是超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接收HTML页面......
  • 百度SpringBoot上传下载组件
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 ......