写点什么

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

  • 2022-12-02
    江西
  • 本文字数:751 字

    阅读完需:约 2 分钟

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

发布于: 刚刚阅读数: 4
用户头像

关注公众号: 石臻臻的杂货铺 获取最新文章 2019-09-06 加入

进高质量滴滴技术交流群,只交流技术不闲聊 加 szzdzhp001 进群 20w字《Kafka运维与实战宝典》PDF下载请关注公众号:石臻臻的杂货铺

评论

发布
暂无评论
如何远程Debug内网(或者防火墙后)的Java服务_Java_石臻臻的杂货铺_InfoQ写作社区