最近我们的项目进行到了前后端整合阶段,因为我们前端后端是不同的成员开发的,而且因为疫情不在学校所以不能使用相同的局域网,又没有公网IP,所以在网上找了找方法,把本地端口映射到阿里云的学生服务器上。虽然这种方法效率比较低,访问耗时比较长,但是也是一个可行的方法。
SSH的两种命令:
正向代理(-L):就是在本地启动端口,把本地端口数据转发到远端。
反向代理(-R):就是让远端启动端口,把远端端口数据转发到本地。
我们使用的是反向代理,把我们本地的服务端口8181映射到服务器上的一个端口8181
服务器安全组配置
首先要打开服务器的安全组配置,添加这样一条规则。端口号就是我们想要映射到的端口号,授权对象0.0.0.0/0表示允许任意IP访问,这样才能让别的机器访问到。
开启映射
在控制台输入
ssh -R 8181:`127.0.0.1:8181 root@服务器IP地址
第一个8181是服务器开启的端口,第二个8181是本地的端口,root是用户名
输入yes后,再输入账户的密码,就连接到了服务器
但这时候直接去浏览器访问服务器IP/8181还是不行的,因为我们只是把他映射到了服务器可以访问的端口上,还要修改ssh配置文件,输入
vim ssh/sshd_config
找到这一行 #GatewayPorts no
把他前面的#注释去掉,然后no改为yes,wq保存退出
输入
systemctl restart sshd
重启ssh
然后输入exit退出,再重新输入
ssh -R 8181:`127.0.0.1:8181 root@服务器IP地址
然后打开浏览器,输入我们的服务器公网IP/8181,就可以看到我们本地运行起来的springboot的接口了
当然也可以用我们项目里配置好的swagger UI来操作接口
这样映射成功后,写前端的同学就可以直接通过公网IP访问接口了,不用再让他把项目clone下来再操作了,方便了很多。