java远程调试,网上很多配置教程,都是没有考虑安全的,直接把调试端口暴露到互联网,安全风险极高,黑客只需要直接连接这个调试端口,就可以调试你的线上应用了,因此,初次调试者,非常有必要看看此文,学习配置调试参数的同时,还需要学习如何使用ssh隧道,做安全策略。
下面分几步来配置:
假如以前启动的时候已经添加过启动配置,可以不用不用管这一步,假如没有添加启动参数,需要添加下面的代码,其中,5005是调试的端口,代码如下:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005这个5005是可以改的,假如你服务端有多个应用,5005端口冲突,可修改这个端口。
相信目前java开发,一般都是用idea的了吧,下面是idea配置远程调试的例子。

之类host不要直接跳服务端的地址,直接暴露服务端的地址和端口出来非常危险,这里先填localhost,因为后面我们将会使用ssh隧道工具,将服务端的5005端口,映射出来本地5005端口。
这一步,需要先把代码分支切换到跟远程服务一样的代码版本上。然后再打端口,等待事先的执行。
使用yunedit-ssh做ssh隧道,其实就是在yunedit-ssh这个ssh客户端软件上,创建一个ssh连接,然后再创建一个远程服务的端口映射,到本地上。
ssh隧道可以使用命令或者可视化工具来做,命令行比较不稳定,断网就不会重连了,长时间使用的话,还是使用可视化客户端来实现,而yunedit-ssh是专门针对ssh隧道的工具,创建ssh映射的界面比较直观,启动也比较简单,因此使用yunedit-ssh
来实现。
如下图所示,是一个映射机房内网IP到本地5005端口的例子:

图中可以看出,既往内网10.246.****的IP下面的5005端口,映射到本地5005端口了。
如下图,在idea的主界面,右上角,找到调试的按钮,在调试按钮左侧的下拉列表选择刚才创建的远程启动项,进行调试,如下例图:

好了,在生产环境上测试,触发到断点代码的时候,本地的idea就可以进入断点了。这里使用了java命令自带的调试工具和一些其他的端口映射安全工具,配搭出完整的调试体系。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 [email protected] 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 [email protected] 删除。