如何远程Debug内网(或者防火墙后)的Java服务

简介: 如何远程Debug内网(或者防火墙后)的Java服务

公司现在存在这种情况, Java服务都部署在内网服务器上,只有一台跳板机能够访问到这些机器,我们就不能跟平常一样用IDEA的remote debug功能来远程Debug代码了;

那么有什么方法能够解决这个问题呢?

解决思路:最终还是要实现远程Debug调试代码,因为这样最直接,那么现在的问题就是如何 远程debug 内网中的Java服务;要解决这个问题,我们首先需要了解到 Java远程debug的工作原理;更详细的原理可以自行百度,但是一句话概述就是    通过Socket与远程Java服务进行TCP连接,然后代码的执行会执行回调函数来通知到本地  所以问题就变成了,如何与内网服务器进行通信  。 好像问题变得简单了, 我们当然是不能与内网进行直接通信, 但是我们有很多种方式来与内网通信啊;

方法一:内网穿透(未验证) 内网穿透工具很多,  有ngrok、spike、等等,但是这里推荐的是  Frp  https://github.com/fatedier/frp    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。 他的功能很多,很强,这里我们需要用到的功能点是:   范围端口映射 这一个功能点我没有去验证, 但是它的功能点就是  端口映射, 理论上是可行的, 我们可以在本机安装 frps的服务端  然后目标内网服务器上安装  frpc的客户端,配置好端口映射 ,就可以远程通信了;

说明:  这种方案应该可行、但是丧失了安全性;  对安全性要求不高的情况可以采用;

方法二: SSH端口转发---SSH隧道

SSH端口转发

这里直接贴上 命令:   ssh -l root -L 本地监听端口:目标服务IP:目标服务Debug端口 -p 22 跳板机

回车,输入跳板机密码;

完事之后,就已经做好了端口转发了,这个时候我们去配置IDEA了然后点击启动,监听成功!; 注意上面的隧道不能关掉,关掉之后就不能通信了;

参考文章:玩转SSH端口转发

SSH端口转发

如何使用IDEA远程调试跳板机背后的Java服务

目录
相关文章
|
8月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
219 6
java调用服务报错400
|
8月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
504 6
|
10月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
11月前
|
分布式计算 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧养老服务需求分析与个性化服务匹配中的应用(186)
本篇文章探讨了Java大数据技术在智慧养老服务需求分析与个性化服务匹配中的应用。通过整合老年人健康数据与行为数据,结合机器学习与推荐算法,实现对老年人健康风险的预测及个性化服务推荐,提升养老服务的智能化与精准化水平,助力智慧养老高质量发展。
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
1086 7
|
运维 安全 Linux
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
837 12
|
Java 数据库
基于java的汽车服务管理系统(Car Service Management System)
基于java的汽车服务管理系统(Car Service Management System)
216 0
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
693 0
|
前端开发 Java API
JAVA Web 服务及底层框架原理
【10月更文挑战第1天】Java Web 服务是基于 Java 编程语言用于开发分布式网络应用程序的一种技术。它通常运行在 Web 服务器上,并通过 HTTP 协议与客户端进行通信。
321 1