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

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:8080 root@xx.xx.xx.xx

ps: 本示例后端项目端口号为8080,如果为别的端口,注意相应修改;
xx.xx.xx.xx为远程服务器ip地址,9999为开放的端口号;
cmd输入上述命令后会要求输入远程主机root账号密码。

执行成功后进入如下界面,请维持该界面状态,如果关闭该界面,则连接断开。
SSH远程端口转发进行SpringBoot项目测试具体实例_第1张图片
此时,在远端服务器执行下面命令,界面有后端项目相关信息输出,则代表远程端口转发正常。

curl http://localhost:9999/notices

ps:/notices为后端项目一个地址映射,请读者测试时改为自己的映射.

4. 远程服务器开放端口

在本机(即运行ssh的主机)浏览器地址栏输入:http://xx.xx.xx.xx:9999/notices,发现访问失败,原因是因为我们还没有开放9999端口。
首先配置远程服务器安全组规则,开放9999端口:
在这里插入图片描述
然后在远程云主机上执行该指令,让防火墙开放该端口:

sudo ufw allow 9999
sudo ufw reload  # 重启防火墙规则

如果此时还是访问失败,有可能是远程服务器ssh配置文件有问题。
修改/etc/ssh/sshd_config文件,将GatewayPorts设置为yes
SSH远程端口转发进行SpringBoot项目测试具体实例_第2张图片
修改完成之后务必要重启该服务(栽在这里一个多小时):

service sshd restart

此时就能够访问啦(下面界面错误是因为访问没有附带请求体,后端映射处理不了,其实到这里已经配置好了),撒花(今天,2020520竟然写了一篇博客,hhh)。
SSH远程端口转发进行SpringBoot项目测试具体实例_第3张图片

你可能感兴趣的:(SpringBoot)