使用IDEA通过ssh隧道调试远程服务器代码

18 篇文章 0 订阅
本文介绍了如何在堡垒机环境下,利用SSH隧道功能进行远程DEBUG。首先在服务器A上开启远程调试端口,然后在堡垒机X上通过ssh命令设置本地端口到服务器A端口的映射,最后在IDEA中配置远程JVMDebug,实现对服务器A的程序进行DEBUG。这种方法解决了堡垒机对系统调试的阻碍。
摘要由CSDN通过智能技术生成

一、背景

在日常系统开发中,常常需要将程序部署到指定内部网络环境下,维护人员会通过堡垒机(跳板机)来访问内网的系统。此景下,当系统需要联机DEBUG时会受堡垒机的影响。不过依靠ssh的隧道功能,可以很方便的避开此问题。

二、实操

假设网络拓扑环境如下:

1、在服务器A上开启远程调试端口

假设我们在服务器A上可通过如下命令开启程序调试端口:

java -Xms2457m -Xmx2457m -Xmn921m -server \
    -Dsun.net.inetaddr.ttl=60 \
    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=29776 \
    -jar /usr/lib/demo/demo-server-1.0.0-SNAPSHOT.jar

2、在堡垒机X上通过ssh在本地开启29776端口并映射到服务器A的29776端口上

在堡垒机器X上使用如下命令开启本地到服务器A的29776端口映射:

ssh -fCNg -L 29776:172.26.5.40:29776 root@172.26.5.40

对于ssh各个参数的说明大致如下:
      -L <local-port>:<remote-host>:<remote-port> : 本地端口与远程主机端口的映射配置
     -f  : 请求 ssh 在执行命令之前转到后台
     -C : 请求压缩所有数据(包括 stdin、stdout、stderr 和用于转发的 X11、TCP 和 UNIX 域连接的数据)
    -N : 不执行远程命令。此选项用于只需要端口转发功能时
    -g: 允许远程主机连接到本地转发端口。如果用于多路复用连接,则必须在主进程上指定此选项
 

详细参数可参考:利用SSH隧道技术穿越内网访问远程设备

   3、使用IDEA启动到堡垒机的DEBUG操作

 (1)点击 + 号找到 Remote JVM Debug

   (2) 添加一个Remote JVM Debug

(3)配置堡垒机X的IP地址和做了映射的29776端口;

至此,就完成了远程DEBUG的相关配置,打上断点,启动debug程序吧。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值