news 2026/4/3 7:00:17

远程调试不再难!Remote JVM Debug+cpolar 让内网 Java 程序调试变简单

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
远程调试不再难!Remote JVM Debug+cpolar 让内网 Java 程序调试变简单

Remote JVM Debug 是一款针对 Java 程序的远程调试工具,能让开发者在本地 IDE 中像操作本地程序一样,对远程服务器上的 Java 应用进行单步调试、查看变量和堆栈信息,甚至实现热修复。它适用于 Java 开发工程师、系统运维人员以及需要协作排查问题的开发团队,其优点在于能实时诊断线上问题,无需重启服务即可修复 bug,还支持多人共享调试端口协作排查。

使用 Remote JVM Debug 时,需要注意它更适合测试环境,生产环境开启可能存在安全风险,且调试过程中尽量避免频繁打断关键业务流程,以免影响服务稳定性。另外,本地开发环境的 JDK 版本需与远程服务器保持一致,否则可能出现调试兼容问题。

不过,Remote JVM Debug 若仅在局域网内使用,会带来不少不便。比如开发者在家中或外出时,无法连接公司内网的服务器进行紧急调试;分布式系统中多团队协作时,跨网段的调试需求难以满足;客户现场出现问题时,技术支持人员也不能远程接入排查,只能依赖现场人员反馈,效率低下。

而当 Remote JVM Debug 与 cpolar 结合后,这些问题迎刃而解。cpolar 作为内网穿透工具,能将内网服务器的调试端口安全映射到公网,无需公网 IP 和复杂的防火墙配置,开发者随时随地都能连接远程服务器进行调试。同时,它支持动态管理隧道,需要时开启,不用时关闭,降低了端口长期暴露的安全风险,让远程调试既便捷又安全。

教程已经准备如下,有需要的朋友赶紧去安装吧!

本文使用的示例项目已在GitHub开源,您可以直接获取完整代码进行学习和实践:

  • GitHub仓库:https://github.com/TanChengBin/springboot-debug-test
  • 项目特点:基于Spring Boot的远程调试测试项目,包含正常接口和异常接口,便于测试各种调试场景

1. Remote JVM Debug

Remote JVM Debug(远程JVM调试)是一种允许开发人员通过调试工具(如 IntelliJ IDEA)连接到运行在远程服务器上的Java应用程序并进行调试的技术。这个过程通常涉及通过网络连接到远程JVM实例,并允许开发者在不直接访问物理机器的情况下查看、修改代码状态,诊断和修复问题。

2. 系统要求与环境准备

2.1 服务器环境

  • 内网服务器操作系统:Windows 或 Linux。
  • JDK 版本:确保服务器上安装了正确版本的 JDK,支持远程调试。
  • cpolar 安装:需要在内网服务器上安装 cpolar 客户端,用于穿透远程登录、调试端口及HTTP请求。

2.2 本地开发环境

  • IDEA:本地开发机器需要安装 IntelliJ IDEA。
  • JDK:本地开发机器需要安装 JDK(版本与远程服务器相同)。

3. 内网服务器准备及开始

由于大部分项目基本部署在Linux服务器中,因为Linux的性能更优,占用更低。所以本文采用的模拟内网服务器为Linux的CentOS7系统。

3.1 安装cpolar配置支持远程ssh登录

此步骤需提前在内网服务器中操作,以支持在家远程登录公司测试环境中的内网服务器

3.1.1 什么是cpolar?
  • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
  • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。
3.1.2 安装cpolar

首先,我们需要先安装curl:

sudoyuminstallcurl

接下来下载cpolar,一条命令完成安装

curl-L https://www.cpolar.com/static/downloads/install-release-cpolar.sh|sudobash

测试cpolar版本以确保安装

cploar version
3.1.3 注册及配置cpolar系统服务

官网地址:https://www.cpolar.com

进入cpolar官网,点击免费注册按钮进行注册一个账号

向系统添加及启动cpolar服务

#添加cpolar服务sudosystemctlenablecpolar#启动cpolar服务sudosystemctl start cpolar

查看服务状态

sudosystemctl status cpolar
3.1.4 登录cpolar web ui 管理界面配置ssh端口穿透
3.1.4.1 放行9200端口

在访问web页面前,需要先检查系统防火墙是否放行9200端口,避免访问不了

systemctl status firewalld

有两种方式可以实现访问,一种是放行该端口,另一种是直接关闭防火墙(不建议)

#放行 9200 端口#--zone=public:使用默认区域(通常是 public)#--add-port=9200/tcp:添加 TCP 协议的 9200 端口#--permanent:永久生效(不加此参数则是临时规则,重启失效)firewall-cmd --zone=public --add-port=9200/tcp --permanent#重载防火墙配置(及刷新配置使其生效)firewall-cmd --reload

验证端口是否已放行

firewall-cmd --zone=public --query-port=9200/tcp

输出内容为yes则成功放行

3.1.4.2 访问cpolar web ui管理界面

在访问之前,不确定ip地址可以通过ifconfig命令查看服务器ip

ifconfig

确定好ip地址后,在浏览器中访问:

http://<此处应为您的IP>:9200#如:http://192.168.184.133:9200

将前面步骤注册好的cpolar账号登录即可进入后台页面

登录成功同时,服务器也会后台无感自动配置token,无需手动配置token

配置文件位置:/usr/local/etc/cpolar/cpolar.yml

cat/usr/local/etc/cpolar/cpolar.yml
3.1.4.3 保留固定TCP公网地址

使用cpolar为其配置TCP地址,该地址为固定地址,不会随机变化,方便后续ssh远程登录。

进入官网的预留页面:https://dashboard.cpolar.com/reserved

列表中显示了一条已保留的TCP地址记录:

  • 地区:显示为China Top
  • 地址:显示为16.tcp.cpolar.top:14290

注:地址每个账号的都不同,请以自己保留生成的为主

3.1.4.4 启用ssh隧道,配置固定tcp地址

点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:

  • ssh隧道,指向22端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

接着点击ssh隧道的编辑按钮,进入编辑页面,修改成固定tcp地址,如图所示:

3.1.4.5 使用固定的tcp地址进行远程ssh登录

ssh远程工具可以使用MobaXtermXshell或者FinalShell都可以,这里采用FinalShell进行远程登录演示

接下来,双击创建的ssh连接,如出现提示,点击接受并保存即可,即可连接到内网服务器

3.2 安装JDK

本文采用jdk17作为演示

#下载jdk17软件包wgethttps://download.oracle.com/java/17/archive/jdk-17_linux-x64_bin.rpm#安装jdk17sudorpm-ivh jdk-17_linux-x64_bin.rpm

安装完成后,查看版本,确认安装

java -version

3.3 上传打包好的Jar文件至服务器

该项目为简单模拟测试调试使用项目,共写3个简单接口:

  • 🟢正常接口:/api/normal/info:获取应用程序的基本信息,包括名称、版本、作者等
  • 🔴异常接口:/api/bug/null-pointer:故意抛出NullPointerException,用于调试异常处理
  • 🟡阻塞接口:/api/bug/infinite-loop:进入无限循环,模拟线程阻塞场景
3.3.1 打包springboot项目

idea中侧边栏选择Maven选项,然后如图操作进行构建打包jar文件:

3.3.2 上传至服务器

依次步骤打开找到jar文件springboot-debug-test-1.0.0.jar

将jar文件直接拖动至finalshell空白处即可上传

注意:一定要使用 root 用户登录,否则上传可能失败(或者确保当前用户对目标目录具有写权限)。

如果使用普通用户登录 FinalShell,可通过chmodchown命令赋予目标目录写权限。

4. 启动 JAR 文件并配置远程调试

4.1 启动 JAR 文件

使用java -jar命令启动你需要调试的 JAR 文件,并开启远程调试。需要在启动命令中指定 JVM 调试参数:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 springboot-debug-test-1.0.0.jar

5005为远程调试的端口号。

springboot-debug-test-1.0.0.jar是要调试的 JAR 文件名称。

项目已经成功启动,端口5005被监听,后台该jar文件项目在端口8080(http)上运行。

4.2 cpolar隧道配置

4.2.1 http(8080端口)穿透

访问cpolar web ui管理界面(忘记可看前面3.1.4.2小节),进入到隧道列表,名称为website的隧道,点击编辑,可以看到如下信息:

  • 隧道名称:website
  • 协议:http
  • 本地地址:8080

这些信息正是后台项目8080端口所需要的,所以不需要进行修改,默认创建好的隧道直接可以使用。

接着左侧菜单栏选择【状态】>【在线隧道列表】,可以看到website隧道有两个公网地址,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

直接选择一个至浏览器测试,这里选择http(注:每个用户的公网地址都不相同)

由于后台项目提到的接口地址后缀为/api/normal/info,所以正确拼接地址应为:

<您的公网地址>/api/normal/info#如:http://5c19bf20.r1.cpolar.top/api/normal/info

接口正常返回了api接口信息,穿透成功!

4.2.2 调试端口(5005端口)穿透
4.2.2.1 保留固定tcp地址

选择将5005端口穿透设置为固定的tcp地址是为了方便后续多次调试,tcp地址不会进行变化,也可以不进行此步骤操作。

进入官网的预留页面:https://dashboard.cpolar.com/reserved

  • 地区当前选择的是:China Top
  • 地址信息为:3.tcp.cpolar.top:12718

记住新创建的地址信息(注意:每个用户创建的地址信息都有所不同,请注意个人的地址信息

4.2.2.2 创建新隧道

进入创建隧道列表,填写好对应信息,如下图:

  • 协议:tcp
  • 本地地址为:5005
  • 端口类型:固定tcp端口
  • 预留tcp地址:填写您预留固定的tcp地址

5.IDEA远程Debug调试内网项目

5.1 idea配置remote jvm debug

点击启动按钮左边的选项卡,然后在选项卡中点击Edit Configurations进入Run/Debug Configurations页面

依次点击左上角【+】号按钮,下滑选择【Remote JVM Debug】选项,点击进入。

填写主机以及端口信息,具体参考如下图:

  • Name:自定义名字(如:Remote Debug)
  • Host:填写固定的tcp地址去除端口部分(如:3.tcp.cpolar.top)
  • Port:填写固定的tcp地址端口部分(如:12718)

5.2 启动及调试

点击右上角的小虫子图标即可启动调试,启动调试后,控制台会出现类似Connected to the target VM, address: '3.tcp.cpolar.top:12718', transport: 'socket'的信息,即代表启动成功

来到BugController控制器,里面有一个异常接口api/bug/null-pointer,代码如下:

/** * 空指针异常接口 * * 该接口会故意抛出NullPointerException * 用于测试空指针异常的调试场景 * * @return 永远不会执行到这里,因为会抛出异常 */@GetMapping("/null-pointer")publicStringnullPointerException(){//1.此位置故意设置nullString字符串为nullStringnullString=null;Stringnow=LocalDateTime.now().format(FORMATTER);System.out.println("空指针异常接口被调用,准备抛出异常,时间:"+now);//2.待接口返回时执行nullString的toString方法时就会抛出NullPointerException异常returnnullString.toString();}

切换到浏览器,然后请求8080端口的穿透地址+异常接口地址进行请求,如:

<您的8080端口穿透地址>/api/bug/null-pointer#如:http://5c19bf20.r1.cpolar.top/api/bug/null-pointer

接着在String nullString = null;代码段左边打上断点调试,如下图:

再次请求一次该链接http://5c19bf20.r1.cpolar.top/api/bug/null-pointer进行发送http请求,可以看到后端idea中已经进去断点调试了

进入下一步骤,查看到nullString变量值确实为null

多跳几个步骤,进入源码后可以确认已抛出空指针异常,提示 nullString 为 null,无法调用其方法。

在finalShell终端1界面中也可以看到,控制台输出的日志出现了NullPointerException异常

通过以上的配置,这样您就可以在家中或者外出无法及时回到公司时,也能很轻松的调试公司中内网服务器里部署的测试环境项目啦!

6.可能出现的问题

6.1 访问页面出现404的情况是怎么回事?

访问出现404:

可以发现,接口路径中少了全局上下文路径/api ,补上就可以访问啦!

7.总结

通过本教程,我们成功实现了使用 Cpolar 结合 Remote JVM Debug 技术,在本地 IDE 环境中调试部署在公司内网中的 Java 服务。整体流程包括:

  • 安装并配置 Cpolar,打通从公网访问内网的通道;
  • 启用 JVM 的远程调试模式,开放调试端口;
  • 使用 IntelliJ IDEA 配置 Debug 远程连接;
  • 最终实现对远程服务的断点调试与问题排查。

本方案适用于以下典型场景:

  • 公司测试环境无法直接从公网访问;
  • 无法通过 VPN 连通或 VPN 配置复杂;
  • 出现远程服务异常但又难以复现时,进行现场调试。

在实际使用中应注意:

  • 远程调试存在安全风险,建议仅限于测试环境,并设置好访问权限;
  • cpolar 每次生成的公网地址可能会变化,建议使用固定子域名(需高级用户)
  • 远程调试应避免在生产环境开启,以免暴露调试端口。

通过这种方式,极大提升了远程问题定位效率,也为远程办公/故障应急提供了可靠手段。

本文使用的示例项目已在GitHub开源,您可以直接获取完整代码进行学习和实践:

  • GitHub仓库:https://github.com/TanChengBin/springboot-debug-test
  • 项目特点:基于Spring Boot的远程调试测试项目,包含正常接口和异常接口,便于测试各种调试场景

1. Remote JVM Debug

Remote JVM Debug(远程JVM调试)是一种允许开发人员通过调试工具(如 IntelliJ IDEA)连接到运行在远程服务器上的Java应用程序并进行调试的技术。这个过程通常涉及通过网络连接到远程JVM实例,并允许开发者在不直接访问物理机器的情况下查看、修改代码状态,诊断和修复问题。

2. 系统要求与环境准备

2.1 服务器环境

  • 内网服务器操作系统:Windows 或 Linux。
  • JDK 版本:确保服务器上安装了正确版本的 JDK,支持远程调试。
  • cpolar 安装:需要在内网服务器上安装 cpolar 客户端,用于穿透远程登录、调试端口及HTTP请求。

2.2 本地开发环境

  • IDEA:本地开发机器需要安装 IntelliJ IDEA。
  • JDK:本地开发机器需要安装 JDK(版本与远程服务器相同)。

3. 内网服务器准备及开始

由于大部分项目基本部署在Linux服务器中,因为Linux的性能更优,占用更低。所以本文采用的模拟内网服务器为Linux的CentOS7系统。

3.1 安装cpolar配置支持远程ssh登录

此步骤需提前在内网服务器中操作,以支持在家远程登录公司测试环境中的内网服务器

3.1.1 什么是cpolar?
  • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
  • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。
3.1.2 安装cpolar

首先,我们需要先安装curl:

sudoyuminstallcurl

接下来下载cpolar,一条命令完成安装

curl-L https://www.cpolar.com/static/downloads/install-release-cpolar.sh|sudobash

测试cpolar版本以确保安装

cploar version

3.1.3 注册及配置cpolar系统服务

官网地址:https://www.cpolar.com

进入cpolar官网,点击免费注册按钮进行注册一个账号

向系统添加及启动cpolar服务

#添加cpolar服务sudosystemctlenablecpolar#启动cpolar服务sudosystemctl start cpolar

查看服务状态

sudosystemctl status cpolar

3.1.4 登录cpolar web ui 管理界面配置ssh端口穿透
3.1.4.1 放行9200端口

在访问web页面前,需要先检查系统防火墙是否放行9200端口,避免访问不了

systemctl status firewalld

有两种方式可以实现访问,一种是放行该端口,另一种是直接关闭防火墙(不建议)

#放行 9200 端口#--zone=public:使用默认区域(通常是 public)#--add-port=9200/tcp:添加 TCP 协议的 9200 端口#--permanent:永久生效(不加此参数则是临时规则,重启失效)firewall-cmd --zone=public --add-port=9200/tcp --permanent#重载防火墙配置(及刷新配置使其生效)firewall-cmd --reload

验证端口是否已放行

firewall-cmd --zone=public --query-port=9200/tcp

输出内容为yes则成功放行

3.1.4.2 访问cpolar web ui管理界面

在访问之前,不确定ip地址可以通过ifconfig命令查看服务器ip

ifconfig

确定好ip地址后,在浏览器中访问:

http://<此处应为您的IP>:9200#如:http://192.168.184.133:9200

将前面步骤注册好的cpolar账号登录即可进入后台页面

登录成功同时,服务器也会后台无感自动配置token,无需手动配置token

配置文件位置:/usr/local/etc/cpolar/cpolar.yml

cat/usr/local/etc/cpolar/cpolar.yml

3.1.4.3 保留固定TCP公网地址

使用cpolar为其配置TCP地址,该地址为固定地址,不会随机变化,方便后续ssh远程登录。

进入官网的预留页面:https://dashboard.cpolar.com/reserved

列表中显示了一条已保留的TCP地址记录:

  • 地区:显示为China Top
  • 地址:显示为16.tcp.cpolar.top:14290

注:地址每个账号的都不同,请以自己保留生成的为主

3.1.4.4 启用ssh隧道,配置固定tcp地址

点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:

  • ssh隧道,指向22端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

接着点击ssh隧道的编辑按钮,进入编辑页面,修改成固定tcp地址,如图所示:

3.1.4.5 使用固定的tcp地址进行远程ssh登录

ssh远程工具可以使用MobaXtermXshell或者FinalShell都可以,这里采用FinalShell进行远程登录演示

接下来,双击创建的ssh连接,如出现提示,点击接受并保存即可,即可连接到内网服务器

3.2 安装JDK

本文采用jdk17作为演示

#下载jdk17软件包wgethttps://download.oracle.com/java/17/archive/jdk-17_linux-x64_bin.rpm#安装jdk17sudorpm-ivh jdk-17_linux-x64_bin.rpm

安装完成后,查看版本,确认安装

java -version

3.3 上传打包好的Jar文件至服务器

该项目为简单模拟测试调试使用项目,共写3个简单接口:

  • 🟢正常接口:/api/normal/info:获取应用程序的基本信息,包括名称、版本、作者等
  • 🔴异常接口:/api/bug/null-pointer:故意抛出NullPointerException,用于调试异常处理
  • 🟡阻塞接口:/api/bug/infinite-loop:进入无限循环,模拟线程阻塞场景
3.3.1 打包springboot项目

idea中侧边栏选择Maven选项,然后如图操作进行构建打包jar文件:

3.3.2 上传至服务器

依次步骤打开找到jar文件springboot-debug-test-1.0.0.jar

将jar文件直接拖动至finalshell空白处即可上传

注意:一定要使用 root 用户登录,否则上传可能失败(或者确保当前用户对目标目录具有写权限)。

如果使用普通用户登录 FinalShell,可通过chmodchown命令赋予目标目录写权限。

4. 启动 JAR 文件并配置远程调试

4.1 启动 JAR 文件

使用java -jar命令启动你需要调试的 JAR 文件,并开启远程调试。需要在启动命令中指定 JVM 调试参数:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 springboot-debug-test-1.0.0.jar

5005为远程调试的端口号。

springboot-debug-test-1.0.0.jar是要调试的 JAR 文件名称。

项目已经成功启动,端口5005被监听,后台该jar文件项目在端口8080(http)上运行。

4.2 cpolar隧道配置

4.2.1 http(8080端口)穿透

访问cpolar web ui管理界面(忘记可看前面3.1.4.2小节),进入到隧道列表,名称为website的隧道,点击编辑,可以看到如下信息:

  • 隧道名称:website
  • 协议:http
  • 本地地址:8080

这些信息正是后台项目8080端口所需要的,所以不需要进行修改,默认创建好的隧道直接可以使用。

接着左侧菜单栏选择【状态】>【在线隧道列表】,可以看到website隧道有两个公网地址,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

直接选择一个至浏览器测试,这里选择http(注:每个用户的公网地址都不相同)

由于后台项目提到的接口地址后缀为/api/normal/info,所以正确拼接地址应为:

<您的公网地址>/api/normal/info#如:http://5c19bf20.r1.cpolar.top/api/normal/info

接口正常返回了api接口信息,穿透成功!

4.2.2 调试端口(5005端口)穿透
4.2.2.1 保留固定tcp地址

选择将5005端口穿透设置为固定的tcp地址是为了方便后续多次调试,tcp地址不会进行变化,也可以不进行此步骤操作。

进入官网的预留页面:https://dashboard.cpolar.com/reserved

  • 地区当前选择的是:China Top
  • 地址信息为:3.tcp.cpolar.top:12718

记住新创建的地址信息(注意:每个用户创建的地址信息都有所不同,请注意个人的地址信息

4.2.2.2 创建新隧道

进入创建隧道列表,填写好对应信息,如下图:

  • 协议:tcp
  • 本地地址为:5005
  • 端口类型:固定tcp端口
  • 预留tcp地址:填写您预留固定的tcp地址

5.IDEA远程Debug调试内网项目

5.1 idea配置remote jvm debug

点击启动按钮左边的选项卡,然后在选项卡中点击Edit Configurations进入Run/Debug Configurations页面

依次点击左上角【+】号按钮,下滑选择【Remote JVM Debug】选项,点击进入。

填写主机以及端口信息,具体参考如下图:

  • Name:自定义名字(如:Remote Debug)
  • Host:填写固定的tcp地址去除端口部分(如:3.tcp.cpolar.top)
  • Port:填写固定的tcp地址端口部分(如:12718)

5.2 启动及调试

点击右上角的小虫子图标即可启动调试,启动调试后,控制台会出现类似Connected to the target VM, address: '3.tcp.cpolar.top:12718', transport: 'socket'的信息,即代表启动成功

来到BugController控制器,里面有一个异常接口api/bug/null-pointer,代码如下:

/** * 空指针异常接口 * * 该接口会故意抛出NullPointerException * 用于测试空指针异常的调试场景 * * @return 永远不会执行到这里,因为会抛出异常 */@GetMapping("/null-pointer")publicStringnullPointerException(){//1.此位置故意设置nullString字符串为nullStringnullString=null;Stringnow=LocalDateTime.now().format(FORMATTER);System.out.println("空指针异常接口被调用,准备抛出异常,时间:"+now);//2.待接口返回时执行nullString的toString方法时就会抛出NullPointerException异常returnnullString.toString();}

切换到浏览器,然后请求8080端口的穿透地址+异常接口地址进行请求,如:

<您的8080端口穿透地址>/api/bug/null-pointer#如:http://5c19bf20.r1.cpolar.top/api/bug/null-pointer

接着在String nullString = null;代码段左边打上断点调试,如下图:

再次请求一次该链接http://5c19bf20.r1.cpolar.top/api/bug/null-pointer进行发送http请求,可以看到后端idea中已经进去断点调试了

进入下一步骤,查看到nullString变量值确实为null

多跳几个步骤,进入源码后可以确认已抛出空指针异常,提示 nullString 为 null,无法调用其方法。

在finalShell终端1界面中也可以看到,控制台输出的日志出现了NullPointerException异常

通过以上的配置,这样您就可以在家中或者外出无法及时回到公司时,也能很轻松的调试公司中内网服务器里部署的测试环境项目啦!

6.可能出现的问题

6.1 访问页面出现404的情况是怎么回事?

访问出现404:

可以发现,接口路径中少了全局上下文路径/api ,补上就可以访问啦!


本方案适用于以下典型场景:

  • 公司测试环境无法直接从公网访问;
  • 无法通过 VPN 连通或 VPN 配置复杂;
  • 出现远程服务异常但又难以复现时,进行现场调试。

在实际使用中应注意:

  • 远程调试存在安全风险,建议仅限于测试环境,并设置好访问权限;
  • cpolar 每次生成的公网地址可能会变化,建议使用固定子域名(需高级用户)
  • 远程调试应避免在生产环境开启,以免暴露调试端口。

总之,Remote JVM Debug 结合 cpolar,有效打破了内网环境对 Java 程序远程调试的限制,无论是紧急修复测试环境 bug,还是跨团队协作排查分布式系统问题,都能显著提升效率,为远程调试提供了可靠且实用的解决方案。

以上就是如何在本地使用Remote JVM Debug 进行内网服务器调试,并安装cpolar内网穿透工具配置固定不变的TCP公网地址,实现随时随地远程访问的全过程,感谢您的观看,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/2 2:50:54

用FinalShell官网快速搭建服务器管理原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个FinalShell快速原型框架&#xff0c;功能包括&#xff1a;1. 插件脚手架生成器&#xff1b;2. API快速测试工具&#xff1b;3. 示例代码库&#xff1b;4. 实时预览调试器。…

作者头像 李华
网站建设 2026/3/23 14:26:29

Z-Image-ComfyUI工作流详解:云端GPU免配置直接玩

Z-Image-ComfyUI工作流详解&#xff1a;云端GPU免配置直接玩 引言 作为一名数字艺术创作者&#xff0c;你是否遇到过这样的困扰&#xff1a;脑海中浮现出绝妙的创意画面&#xff0c;但本地电脑性能却无法支撑复杂的AI绘画工作流&#xff1f;渲染速度慢如蜗牛&#xff0c;甚至…

作者头像 李华
网站建设 2026/4/3 0:51:09

Windows 11安装全攻略:从问题诊断到完美安装的实战指南

Windows 11安装全攻略&#xff1a;从问题诊断到完美安装的实战指南 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat 你是…

作者头像 李华
网站建设 2026/3/18 18:33:43

AI手势识别视频流处理:实时摄像头接入实战教程

AI手势识别视频流处理&#xff1a;实时摄像头接入实战教程 1. 引言 1.1 学习目标 本教程旨在带你从零开始&#xff0c;将一个预训练的AI手势识别模型&#xff08;基于MediaPipe Hands&#xff09;集成到实时视频流处理系统中&#xff0c;实现通过摄像头实时捕捉手部动作、检…

作者头像 李华
网站建设 2026/3/31 9:49:56

Cursor中文对比:AI编程VS传统开发效率实测

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 分别用传统方式和Cursor中文版实现一个电商商品管理后台。比较两者在以下方面的差异&#xff1a;1) 开发时长 2) 代码质量 3) 功能完整性。要求提供可运行的代码和详细对比报告。点…

作者头像 李华
网站建设 2026/3/12 19:12:34

CTF-NetA实战手册:零基础玩转网络流量分析

CTF-NetA实战手册&#xff1a;零基础玩转网络流量分析 【免费下载链接】CTF-NetA 项目地址: https://gitcode.com/gh_mirrors/ct/CTF-NetA 还在为CTF比赛中的流量分析题头疼吗&#xff1f;CTF-NetA就像你的专属解码器&#xff0c;让复杂的网络流量变得简单易懂。无论你…

作者头像 李华