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隧道,进行安全调试了。

相关文章
|
9月前
|
存储 人工智能 监控
什么是可信数据空间?为什么可信数据空间是数据共享的关键?
可信数据空间是解决数据共享中安全与合规难题的关键。它通过数据主权保障、技术互信和协同计算,实现跨组织安全数据协作,广泛应用于金融、医疗、企业内部门户等领域,是打破数据孤岛、构建数字信任的基石。
1345 12
|
Linux
centos 8 换阿里源
centos 8 换阿里源
6428 0
|
9月前
|
NoSQL 安全 网络安全
redis在云端内网,管理redis数据的方案
云端Redis默认禁外网访问,直接开放易致数据泄露(尤其弱密码场景)。推荐用yunedit-redis:通过SSH隧道安全映射内网Redis端口至本地(如16379),再连接localhost:16379,即可安全完成增删查改及导入导出。
|
4月前
|
人工智能 安全 API
阿里云千问大模型入门到精通全解:核心功能、价格配置与完整实操指南
千问,官方名称通义千问,代号Qwen,是阿里云完全自主研发的全栈大模型家族,并非单一模型,而是覆盖纯文本、代码、图像、音频、视频、行业垂直场景的完整模型产品矩阵,统一依托阿里云百炼大模型服务平台对外提供能力调用、微调、智能体开发、知识库构建、应用部署等全链路服务。
7549 3
|
10月前
|
SQL 算法 Java
MybatisPlus讲义
本项目基于若依框架与AI技术,打造智慧养老管理系统。涵盖来访、入住、服务、财务等模块,分管理后台与家属端,结合Vue3、SpringBoot、Redis、物联网等技术,融合大模型与AI工具,助力高效开发,响应中国智慧养老发展趋势。
|
9月前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
4242 189
|
Prometheus Kubernetes 安全
5 款漏洞扫描工具:实用、强力、全面(含开源)(一)
5 款漏洞扫描工具:实用、强力、全面(含开源)
5041 1
5 款漏洞扫描工具:实用、强力、全面(含开源)(一)
|
消息中间件 Kafka Apache
Flink 提供了与 Kafka 集成的官方 Connector,使得 Flink 能够消费 Kafka 数据
【2月更文挑战第6天】Flink 提供了与 Kafka 集成的官方 Connector,使得 Flink 能够消费 Kafka 数据
884 2

热门文章

最新文章