如何远程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服务

相关文章
|
18天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
24 1
|
2月前
|
监控 负载均衡 Dubbo
|
2月前
|
Java Unix 应用服务中间件
使用java service wrapper把windows flume做成服务
使用java service wrapper把windows flume做成服务
|
1天前
|
JavaScript Java 测试技术
基于Java的珠江学院大学生自愿者服务网的设计与实现(源码+lw+部署文档+讲解等)
基于Java的珠江学院大学生自愿者服务网的设计与实现(源码+lw+部署文档+讲解等)
19 0
|
4天前
|
JavaScript Java 测试技术
基于Java的家政公司服务平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的家政公司服务平台的设计与实现(源码+lw+部署文档+讲解等)
21 1
|
7天前
|
JavaScript Java 测试技术
基于Java的社区老年人关怀服务系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的社区老年人关怀服务系统的设计与实现(源码+lw+部署文档+讲解等)
20 1
|
11天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
16天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
29天前
|
安全 小程序 Java
java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
17 0
|
3月前
|
存储 前端开发 JavaScript
基于Java的大型商场综合服务平台系统设计与实现
基于Java的大型商场综合服务平台系统设计与实现