前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何远程Debug内网(或者防火墙后)的Java服务

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

作者头像
石臻臻的杂货铺[同名公众号]
发布2021-07-14 10:09:20
9000
发布2021-07-14 10:09:20
举报
文章被收录于专栏:kafka专栏

公司现在存在这种情况, 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服务

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
远程调试
远程调试(Remote Debugging,RD)在云端为用户提供上千台真实手机/定制机/模拟器设备,快速实现随时随地测试。运用云测技术对测试方式、操作体验进行了优化,具备多样性的测试能力,包括随时截图和记录调试日志,稳定的支持自动化测试, 设备灵活调度,用例高效执行, 快速定位产品功能和兼容性问题。云手机帮助应用、移动游戏快速发现和解决问题,节省百万硬件费用,加速敏捷研发流程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档