java本机电脑跳过2层网络连到客户内网远程调试方案
一、工作场景:
a机器: 客户服务器 在纯内网,部署java程序,能够访问b服务器
b机器: 互联网前置机
c机器: 研发人员本地电脑
二、网络部署情况:
a机可以ssh到b机
c机可以ssh到b机
中间网络层设备无权限调整或者开通额外网络端口 有很多限制
问题:
a机器上程序出问题了, 我怎么远程调试
三、解决思路:
工作原理
a机能访问b机前置机
c机能访问b机前置机
通过b机做端口映射操作即可
实际操作:
(1)a机启动java服务,监听调试端口
java -Xms112m -Xmx296m -jar agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0:10004 xxx.jar
(2) 网络打通,ssh隧道
idea访问c本机10004 ssh反射到 b机10004
c机执行命令:ssh -f -N -L 10004:127.0.0.1:10004 root@b机ip
b机10004反射到c机10004
a机执行命令 ssh -f -N -R 10004:127.0.0.1:10004 root@b机ip
最终解决现场实际需求