土木特网站建设男女做那个视频的网站
2026/5/24 0:42:04 网站建设 项目流程
土木特网站建设,男女做那个视频的网站,小企业网站建设平台,互联网企业公司简介Remote JVM Debug 是一款针对 Java 程序的远程调试工具#xff0c;能让开发者在本地 IDE 中像操作本地程序一样#xff0c;对远程服务器上的 Java 应用进行单步调试、查看变量和堆栈信息#xff0c;甚至实现热修复。它适用于 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 DebugRemote 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 什么是cpolarcpolar 是一款内网穿透工具可以将你在局域网内运行的服务如本地 Web 服务器、SSH、远程桌面等通过一条安全加密的中间隧道映射至公网让外部设备无需配置路由器即可访问。广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台并提供一键安装脚本方便部署。3.1.2 安装cpolar首先我们需要先安装curlsudoyuminstallcurl接下来下载cpolar,一条命令完成安装curl-L https://www.cpolar.com/static/downloads/install-release-cpolar.sh|sudobash测试cpolar版本以确保安装cploar version3.1.3 注册及配置cpolar系统服务官网地址https://www.cpolar.com进入cpolar官网点击免费注册按钮进行注册一个账号向系统添加及启动cpolar服务#添加cpolar服务sudosystemctlenablecpolar#启动cpolar服务sudosystemctl start cpolar查看服务状态sudosystemctl status cpolar3.1.4 登录cpolar web ui 管理界面配置ssh端口穿透3.1.4.1 放行9200端口在访问web页面前需要先检查系统防火墙是否放行9200端口避免访问不了systemctl status firewalld有两种方式可以实现访问一种是放行该端口另一种是直接关闭防火墙不建议#放行 9200 端口#--zonepublic使用默认区域通常是 public#--add-port9200/tcp添加 TCP 协议的 9200 端口#--permanent永久生效不加此参数则是临时规则重启失效firewall-cmd --zonepublic --add-port9200/tcp --permanent#重载防火墙配置(及刷新配置使其生效)firewall-cmd --reload验证端口是否已放行firewall-cmd --zonepublic --query-port9200/tcp输出内容为yes则成功放行3.1.4.2 访问cpolar web ui管理界面在访问之前不确定ip地址可以通过ifconfig命令查看服务器ipifconfig确定好ip地址后在浏览器中访问http//此处应为您的IP:9200#如http://192.168.184.133:9200将前面步骤注册好的cpolar账号登录即可进入后台页面登录成功同时服务器也会后台无感自动配置token,无需手动配置token配置文件位置/usr/local/etc/cpolar/cpolar.ymlcat/usr/local/etc/cpolar/cpolar.yml3.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远程工具可以使用MobaXterm、Xshell或者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 -version3.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可通过chmod或chown命令赋予目标目录写权限。4. 启动 JAR 文件并配置远程调试4.1 启动 JAR 文件使用java -jar命令启动你需要调试的 JAR 文件并开启远程调试。需要在启动命令中指定 JVM 调试参数java -jar -agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005 springboot-debug-test-1.0.0.jar5005为远程调试的端口号。springboot-debug-test-1.0.0.jar是要调试的 JAR 文件名称。项目已经成功启动端口5005被监听后台该jar文件项目在端口8080http上运行。4.2 cpolar隧道配置4.2.1 http8080端口穿透访问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 DebugHost:填写固定的tcp地址去除端口部分如3.tcp.cpolar.topPort:填写固定的tcp地址端口部分如127185.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字符串为nullStringnullStringnull;StringnowLocalDateTime.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 DebugRemote 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 什么是cpolarcpolar 是一款内网穿透工具可以将你在局域网内运行的服务如本地 Web 服务器、SSH、远程桌面等通过一条安全加密的中间隧道映射至公网让外部设备无需配置路由器即可访问。广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台并提供一键安装脚本方便部署。3.1.2 安装cpolar首先我们需要先安装curlsudoyuminstallcurl接下来下载cpolar,一条命令完成安装curl-L https://www.cpolar.com/static/downloads/install-release-cpolar.sh|sudobash测试cpolar版本以确保安装cploar version3.1.3 注册及配置cpolar系统服务官网地址https://www.cpolar.com进入cpolar官网点击免费注册按钮进行注册一个账号向系统添加及启动cpolar服务#添加cpolar服务sudosystemctlenablecpolar#启动cpolar服务sudosystemctl start cpolar查看服务状态sudosystemctl status cpolar3.1.4 登录cpolar web ui 管理界面配置ssh端口穿透3.1.4.1 放行9200端口在访问web页面前需要先检查系统防火墙是否放行9200端口避免访问不了systemctl status firewalld有两种方式可以实现访问一种是放行该端口另一种是直接关闭防火墙不建议#放行 9200 端口#--zonepublic使用默认区域通常是 public#--add-port9200/tcp添加 TCP 协议的 9200 端口#--permanent永久生效不加此参数则是临时规则重启失效firewall-cmd --zonepublic --add-port9200/tcp --permanent#重载防火墙配置(及刷新配置使其生效)firewall-cmd --reload验证端口是否已放行firewall-cmd --zonepublic --query-port9200/tcp输出内容为yes则成功放行3.1.4.2 访问cpolar web ui管理界面在访问之前不确定ip地址可以通过ifconfig命令查看服务器ipifconfig确定好ip地址后在浏览器中访问http//此处应为您的IP:9200#如http://192.168.184.133:9200将前面步骤注册好的cpolar账号登录即可进入后台页面登录成功同时服务器也会后台无感自动配置token,无需手动配置token配置文件位置/usr/local/etc/cpolar/cpolar.ymlcat/usr/local/etc/cpolar/cpolar.yml3.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远程工具可以使用MobaXterm、Xshell或者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 -version3.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可通过chmod或chown命令赋予目标目录写权限。4. 启动 JAR 文件并配置远程调试4.1 启动 JAR 文件使用java -jar命令启动你需要调试的 JAR 文件并开启远程调试。需要在启动命令中指定 JVM 调试参数java -jar -agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005 springboot-debug-test-1.0.0.jar5005为远程调试的端口号。springboot-debug-test-1.0.0.jar是要调试的 JAR 文件名称。项目已经成功启动端口5005被监听后台该jar文件项目在端口8080http上运行。4.2 cpolar隧道配置4.2.1 http8080端口穿透访问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 DebugHost:填写固定的tcp地址去除端口部分如3.tcp.cpolar.topPort:填写固定的tcp地址端口部分如127185.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字符串为nullStringnullStringnull;StringnowLocalDateTime.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 | 远程访问 | 搭建网站

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询