解决方法·远程debug代码+跳板机

背景

debug是比较高效,并且常见的一种解决代码故障的方法(真实情况其实是。。通过日志看不出来,,才无奈选择)

这次分两级介绍远程debug的方法(其实第二级才是我主要想记录的东西。。毕竟第一级,,终究是第一级):

  1. 一级别就是debug一台可以从本地直连的服务器;
  2. 二级是说一下如何debug一台本地需要通过跳板机才能连接的服务器;

ps:这里用的是IDEA进行debug代码

远程debug方法

首先,你代码得写得能运行,这是最基础的。。

假设你已经把代码放到了服务器了;并且能正常启动了

debug可以直连的服务器

配置服务端

在Idea中打开"Edit Configuration..."

在下图1处配置程序部署的IP,2处配置一个服务端还没有被占用的端口(在服务端使用“lsof -i:端口”可以看端口有没有被占用——有回显就是被占用了,没有回显就表示没有占用)

 

修改服务端启动命令

上图中3处的文本复制下来,贴到服务端的java程序启动命令中,例如:

原来的启动命令是:

java -jar myClass.jar

把上图中3处的文本贴到启动命令之后是: 

java -agentlib:jd...(中间省略)...8005 -jar myClass.jar

(配置完了记得点"OK",这个不用我说把。。。)

重启服务端

然后把服务器上的服务重启一下;

开始debug

点击Idea的debug按钮连接服务:

如下图就表面已经连接到了远程服务 

通过跳板机debug远程服务

大多数情况下让人头疼的遇到了问题,想去debug的时候,发现本地无法直连服务端,,,,淡淡疼

于是,如何通过跳板机进行远程debug,就有必要学习下了(只不过你绝对没有想到会这么简单);

 

正题开始

 

一开始的动作和第一级的普通debug一样,就当作是可以直连的操作,步骤没啥要说的,和上面一样;

就是最后点击debug按钮的步骤要到操作完以下动作

首先是找到你的跳板机。

这里,假设不可直连的ip是10.45.150.42,然后,服务的debug端口是8005;

打算在本地通过跳板机的8005端口进行debug;

在跳板机执行如下语句即可

ssh -C -f -N -g -L 8006:10.45.150.42:8005 gavin@10.45.150.42

实际操作:

[gavin@gavin029 soft]$ lsof -i:8005 #先看看跳板机的8005端口有没有被占用
[gavin@gavin029 soft]$ 
[gavin@gavin029 soft]$  #没有回显,表面没有被占用
[gavin@gavin029 soft]$ ssh -C -f -N -g -L 8006:10.45.150.42:8005 gavin@10.45.150.42 
gavin@10.45.150.42's password: 
[gavin@gavin029 soft]$ lsof -i:8005 #可以看到此时端口已经成功启动了
COMMAND   PID  USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
ssh     26739 gavin    4u  IPv4 687979297      0t0  TCP *:mxi (LISTEN)
ssh     26739 gavin    5u  IPv6 687979298      0t0  TCP *:mxi (LISTEN)

 

这会就可以点击debug按钮了;就当能够直连的那种操作即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值