java远程调试在线服务的教程超详细

简介: 很多时候,由于本地环境跟服务端环境有差异,或者服务端的数据有差异,造成在服务端运行出错,但是本地不出错的情况,因此,就需要做远程调试。java是一个很有意思的语言,它有很多好用的工具,就比如,java是支持在线调试的,只要在服务端启动调试端口就行了。但是很多教程都没有考虑安全问题,很多教程都是直接连接服务端的调试端口,直接暴露调试端口会导致服务端被攻击,因此,最近很多公司因为调试而导致出现安全事故。因此,我们这个教程不单是告诉大家如何调试,还将教会大家如何做安全。安全是远程调试的必修课。

很多时候,由于本地环境跟服务端环境有差异,或者服务端的数据有差异,造成在服务端运行出错,但是本地不出错的情况,因此,就需要做远程调试。

java是一个很有意思的语言,它有很多好用的工具,就比如,java是支持在线调试的,只要在服务端启动调试端口就行了。

但是很多教程都没有考虑安全问题,很多教程都是直接连接服务端的调试端口,直接暴露调试端口会导致服务端被攻击,因此,最近很多公司因为调试而导致出现安全事故。因此,我们这个教程不单是告诉大家如何调试,还将教会大家如何做安全。安全是远程调试的必修课。

一、修改java启动命令,追加启动参数

追加的参数如下,一般是使用5005端口调试:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

二、使用ssh隧道工具将应用端口映射到本地

注意,这里是使用ssh隧道工具将端口映射到本地,不是直接云端机房开通外网访问将端口挂到外网。这个很重要,因为ssh隧道还要经过ssh跳板机的密码这一关,有安全校验,假如直接开通外网端口访问是没有任何安全措施的。

这里推荐使用yunedit-ssh这款可视化ssh工具,来做ssh隧道,因为它针对ssh隧道功能比较专业,有断线重连等功能,还有隧道开关功能。

使用方法:
(1)下载yunedit-ssh安装,下载下来后,双击不断点击下一步就可以安装完成了。

(2)在界面创建一个连接云端ssh跳板机的ssh连接,并设置映射规则,添加完后,如下图所示:
image.png

如上图所示,映射规则将云端机房内网服务器的5005端口,映射到本地5005端口了,启动这个映射开关后,后面访问本地localhost的5005端口,即可通过ssh隧道访问云端的内网服务器了。

三、配置idea远程调试

这个很简单,在idea中,点击Run菜单,然后再点击Edit Configurations,在接下来的界面上,点击左边➕号,新建一个Remote Jvm Debug调试类型的调试项。界面如下:
image.png

四、使用idea打开相同分支的代码

idea必须打开跟服务端版本相同的分支的代码,否则服务端的代码可能会跟本地的代码不一致。

找到需要调试的代码,打上断点。

五、在idea启动调试

在idea的右上角,找到这个调试小按钮,点击就启动调试了
image.png

当服务端的逻辑运行到这个断点的代码的时候,就可以远程调试了。现在放心调试吧,已经使用了ssh隧道,进行安全调试了。

相关文章
|
2月前
|
存储 人工智能 监控
什么是可信数据空间?为什么可信数据空间是数据共享的关键?
可信数据空间是解决数据共享中安全与合规难题的关键。它通过数据主权保障、技术互信和协同计算,实现跨组织安全数据协作,广泛应用于金融、医疗、企业内部门户等领域,是打破数据孤岛、构建数字信任的基石。
|
Linux
centos 8 换阿里源
centos 8 换阿里源
5170 0
|
前端开发 Java
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
994 0
|
2月前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
1303 98
|
2月前
|
NoSQL 安全 网络安全
redis在云端内网,管理redis数据的方案
云端Redis默认禁外网访问,直接开放易致数据泄露(尤其弱密码场景)。推荐用yunedit-redis:通过SSH隧道安全映射内网Redis端口至本地(如16379),再连接localhost:16379,即可安全完成增删查改及导入导出。
|
7月前
|
前端开发 JavaScript 开发工具
前端开发基础:从零开启网页制作之旅
本文围绕前端开发基础展开,介绍了构建网页的三大核心技术:HTML(定义页面结构,具语义化特性)、CSS(控制视觉样式,含选择器、盒模型等核心概念)、JavaScript(实现动态交互,可操作 DOM),还提及 VS Code、浏览器开发者工具、Git 等必备工具,给出 “先基础后框架” 的学习路径与 MDN Web Docs 等资源,强调实践的重要性,帮助初学者掌握前端基础,为后续进阶奠基。
|
机器学习/深度学习 人工智能 分布式计算
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
本次教程介绍了如何使用 PAI ×LLaMA Factory 框架,基于全参方法微调 Qwen2-VL 模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
|
搜索推荐 Java 开发者
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 问题处理
【5月更文挑战第14天】org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 问题处理
5820 1
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
33802 0

热门文章

最新文章