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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

在日常系统开发中,常常需要将程序部署到指定内部网络环境下,维护人员会通过堡垒机(跳板机)来访问内网的系统。此景下,当系统需要联机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程序吧。

    

### IntelliJ IDEA SSH 远程连接配置教程 #### 一、准备工作 为了确保能够顺利地通过SSH协议连接至远程服务器,在开始之前需确认已获取目标机器的IP地址、登录用户名以及相应的私钥文件或密码。 #### 二、设置远程开发环境 在IntelliJ IDEA中实现远程开发功能,可通过JetBrains Gateway工具来完成。当指定主机名与用户名并提交验证信息(如密钥或密码),Gateway负责建立安全shell (SSH)链接,并自动检测是否存在可用的IDE后端;如果不存在则会从官方站点下载最新版进行部署[^1]。 #### 三、具体操作流程 进入IntelliJ IDEA界面后按照如下路径找到远程开发选项:`File -> Remote Development`。随后点击`New Connection`按钮新建一个连接实例。在此过程中需要准确无误地填入必要的身份认证资料,包括但不限于服务器地址、账户名称等基本信息。接着依据提示输入正确的访问凭证——这可能是预先设定好的秘钥或者是简单的字符型密码。最后一步是从给定列表里挑选合适的IDE版本号及定义好项目的存储位置[^2]。 ```bash # 打开终端测试连通性 ssh username@remote_host_ip_address ``` #### 四、开启SSH终端 一旦上述步骤顺利完成,意味着已经成功建立了通往远端计算机的安全通道。此时可以尝试通过菜单栏中的`Open an SSH Terminal`选项打开内置命令行工具进一步检验网络状况或是执行其他初始化脚本工作。 #### 五、处理特殊场景下的需求 对于某些特定场合下可能涉及到更复杂的网络架构,比如企业内部网环境中想要借助中间跳板机作为中介来进行间接性的程序调试活动,则可以通过构建SSH隧道的方式来达成目的。这种方式允许开发者绕过防火墙限制从而获得更加灵活的操作权限[^4]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值