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

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石臻臻的杂货铺

不用打赏,加微信,交个朋友就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值