公司现在存在这种状况, Java服务都布置在内网服务器上,只有一台跳板机可以访问到这些机器,咱们就不能跟平常一样用IDEA的remote debug功用来长途Debug代码了;

那么有什么办法可以处理这个问题呢?

处理思路: 终究仍是要完成长途Debug调试代码,由于这样最直接,那么现在的问题就是怎么 长途debug 内网中的Java服务;要处理这个问题,咱们首要需要了解到 Java长途debug的作业原理;更具体的原理可以自行百度,可是一句话概述就是 通过Socket与长途Java服务进行TCP连接,然后代码的履行会履行回调函数来通知到本地 所以问题就变成了,怎么与内网服务器进行通讯 。 如同问题变得简单了, 咱们当然是不能与内网进行直接通讯, 可是咱们有许多种方式来与内网通讯啊;

办法一:内网穿透(未验证) 内网穿透工具许多, 有ngrok、spike、等等,可是这儿引荐的是 Frp github.com/fatedier/fr… frp 是一个可用于内网穿透的高性能的反向署理使用,支持 tcp, udp 协议,为 http 和 https 使用协议供给了额外的才能,且尝试性支持了点对点穿透。 他的功用许多,很强,这儿咱们需要用到的功用点是: 范围端口映射 这一个功用点我没有去验证, 可是它的功用点就是 端口映射, 理论上是可行的, 咱们可以在本机装置 frps的服务端 然后方针内网服务器上装置 frpc的客户端,装备好端口映射 ,就可以长途通讯了;

说明: 这种计划应该可行、可是丧失了安全性; 对安全性要求不高的状况可以选用;

办法二: SSH端口转发—SSH隧道

SSH端口转发

这儿直接贴上 指令: ssh -l root -L 本地监听端口:方针服务IP:方针服务Debug端口 -p 22 跳板机

回车,输入跳板机暗码;

完事之后,就现已做好了端口转发了,这个时分咱们去装备IDEA了

如何远程Debug内网(或者防火墙后)的Java服务
然后点击发动,监听成功!; 注意上面的隧道不能关掉,关掉之后就不能通讯了;

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

SSH端口转发

怎么使用IDEA长途调试跳板机背面的Java服务

本文正在参与「金石计划 . 瓜分6万现金大奖」