SSH远程端口转发进行SpringBoot项目测试具体实例

本文详细介绍了如何通过SSH远程端口转发进行SpringBoot项目的测试。在非局域网环境下,利用SSH的-R选项将本地端口转发到远程服务器,实现前后端项目的整合测试。步骤包括启动后端项目、执行远程端口转发命令、验证转发正常以及配置远程服务器开放端口。

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

SSH远程端口转发进行SpringBoot项目测试具体实例

1. 前言

疫情期间,在家合作完成项目时,自然涉及到前后端项目的整合。但目前的问题是进行端口对接时,需要及时共享后端控制台的输出,以便对测试结果进行判断。大家在非局域网状态下,实现这种需求自然想到了远程端口转发。网上查阅的一些资料,大多只是介绍概念和一些公式,没有具体实现步骤,因此想记录一下,也方便以后查找。

2. 远程端口转发实现

所谓远程端口转发,就是将发送到远程端口的请求,转发到目标端口。

远程端口转发机制:ssh -R sshserverport:remotehost:remotehost portsshserver

比如:ssh–R 9527:client:23 server,该条命令含义为:把server的9527端口的所有数据都转发到client的23端口。

3. 具体实现

首先启动后端项目;
然后执行以下连接命令:

ssh -R 9999:localhost:
### 使用 Jenkins 和 Gitee 自动化部署 Spring Boot 项目的教程 #### 配置 Docker 安装 Jenkins 为了实现自动化部署,首先需要在本地环境中安装 Jenkins。可以利用 Docker 来快速搭建 Jenkins 的运行环境[^1]。 ```bash docker run --name jenkins-docker \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ docker.io/jenkinsci/blueocean ``` 上述命令会启动一个基于官方镜像的 Jenkins 实例,并将其绑定到主机端口 `8080` 上。 --- #### 创建 Jenkins 任务并集成 Maven 构建工具 创建一个新的自由风格的任务,在构建部分指定 Maven 命令来打包 Spring Boot 应用程序: ```xml mvn clean package -DskipTests=true ``` 此命令会在不执行测试的情况下完成应用程序的编译和打包操作[^2]。 --- #### 设置 Webhook 触发器 为了让每次提交代码都能自动触发 Jenkins 构建流程,需设置 Gitee 的 Webhooks 功能。具体步骤如下: - 登录至 Gitee 并导航到目标仓库; - 进入 **管理 -> WebHooks** 页面; - 新增一条记录,填写以下参数: - URL 地址:`http://<jenkins-ip>:8080/gitee-webhook/<job-name>` (替换 `<jenkins-ip>` 和 `<job-name>`) - 密钥:与 Jenkins 中配置一致的 Token 值; - 触发条件:勾选 “Push” 类型事件即可。 当开发者向该分支推送新版本时,Gitee 就会通知 Jenkins 开始新一轮 CI 流程处理。 --- #### 编写 Shell 脚本来上传文件到远程服务器 假设已经有一台 Linux 主机作为生产环境,则可以通过 SSH 协议传输生成好的 JAR 文件过去。下面是一个简单的 shell 脚本例子用于演示目的[^4]: ```sh #!/bin/bash # 判断是否存在 jar 包 if [ ! -f "target/${PROJECT_NAME}.jar" ]; then echo "[ERROR] The target jar does not exist!" exit 1; fi; scp -P ${SSH_PORT} target/${PROJECT_NAME}.jar ${REMOTE_USER}@${REMOTE_HOST}:${DEPLOY_PATH} ssh -p ${SSH_PORT} ${REMOTE_USER}@${REMOTE_HOST} << EOF cd $DEPLOY_PATH && chmod +x start.sh && ./stop.sh || true && sleep 5s && ./start.sh & EOF ``` 其中 `${PROJECT_NAME}`,`${SSH_PORT}` 等变量应根据实际情况调整好后再放入全局属性或者凭据插件里保存起来调用比较安全可靠些[^3]。 --- #### 总结说明 整个工作流涵盖了从源码托管平台(Gitee),持续集成服务(Jenkins)直到最终部署地点(远端Linux机器)之间的各个环节衔接紧密顺畅高效便捷易维护性强等特点突出表现明显优于传统手动方式很多倍不止于此之外还具备高度灵活性适应不同场景需求变化迅速响应及时等诸多优势值得推广普及应用广泛前景广阔未来可期!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值