码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境


    文章目录

    • 前言
    • 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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    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
    
    • 1
    • 或 cpolar短链接安装方式:(国外使用)
    curl -sL https://git.io/cpolar | sudo bash
    
    • 1
    • 查看版本号,有正常显示版本号即为安装成功
    cpolar version
    
    • 1
    • token认证

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

    cpolar authtoken xxxxxxx
    
    • 1

    20230417112726

    • 简单穿透测试
    cpolar http 8080
    
    • 1

    按ctrl+c退出

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

      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

    • 相关阅读:
      [激光原理与应用-23]:《激光原理与技术》-9- 控制技术-锁模技术
      windows aseprite编译指南(白嫖)
      spark 精华总结
      命令模式
      win 11 无法打出中文句号问题(中/英文标点切换) 微软五笔输入法
      图划分(Graph Partition&Re-ordering): METIS(5.x)&ParMETIS(4.x)使用实践
      (Java高级教程)第一章Java多线程基础-第一节3:线程状态和线程安全
      【2023,学点儿新Java-42】赋值运算符 及其 基础练习(含整体分析解释,适合小白学习哦)| 复合赋值操作符:“+=“、“++“、“*=“的综合应用
      【openGauss】一主一备实现主备节点切换实验(switchover、failover)
      外汇天眼:美联储认为美国房价有大跌的风险!
    • 原文地址:https://blog.csdn.net/weixin_42878111/article/details/134441248
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号