文章目录
- 前言
- 一、明确基本概念
- 二、frp下载与使用
- 1.云服务器做为Server端
- 2.GPU服务器做为Client端
- 3.远程访问
- 三、云服务器防火墙端口开启
前言
frp 是一个高性能的反向代理应用,可以帮助开发者轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
frp的作用如下:
- 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
- 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
- 利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
- 可查看通过代理的所有 http 请求和响应的详细信息。(待开发)
本文介绍了如何使用frp进行反向代理,使位于内网的服务器向外网提供ssh服务。
一、明确基本概念
对于新手而言,服务器、公网服务器这些概念很容易混淆,所以首先需要明确这几台机器的定义:
内网服务器/GPU服务器:假设我们实验室有一台NVIDIA A100的GPU服务器,但是目前只能通过校园网进行访问,我想把这个GPU服务器的端口映射出去,这样我在任何地方都可以连接到这台GPU服务器了。我们称这台GPU服务器为内网服务器。这个server含有更多的含义是“计算资源”。
公网服务器/云服务器:想要在任何地方都访问到内网服务器,我们必须要有一台具有公网IP的云服务器,例如从阿里云、腾讯云这些平台租到的服务器。这个server含有更多的含义是“具有公网IP”。
为了区分开,后面统称为GPU服务器、云服务器以做区分。
明确任务:我们现在想把GPU服务器
的22号端口转发到云服务器
的某个X端口,这样我们访问云服务器
的X端口时就直接访问了GPU服务器
的22号端口。
二、frp下载与使用
首先找到frp的Github页面,找到release版本并下载解压。
一般将frp文件夹放置在/usr/local/
路径下,并且将一长串名字命名为frp。
GPU服务器
的frp文件夹中删去frps*
相关文件;云服务器
的frp文件夹中删除frpc*
相关文件。
下面为GPU服务器
和云服务器
上分别的设置方法:frp说明文档
1.云服务器做为Server端
修改frp文件夹下的frps.ini
文件:
# frps.ini
[common]
bind_port = 7000
配置完成之后执行以下命令,开启frps服务。显示下图则开启成功。
./frps -c ./frps.ini
2.GPU服务器做为Client端
修改frp文件夹下的frpc.ini
文件:
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
配置完成之后执行以下命令,开启frpc服务。显示下图则开启成功。
./frpc -c ./frpc.ini
3.远程访问
如需远程访问则直接运行:
ssh -oPort=6000 <NAME>@x.x.x.x
其中<NAME>
为用户名,x.x.x.x
为云服务器的公网IP。
三、云服务器防火墙端口开启
安全起见,云服务器的端口默认都关闭,因为frp需要使用云服务器的两个端口:
- 7000端口:bind_port,用于和GPU服务器通讯
- 6000端口:GPU服务器指定的remote_port
若7000端口不开放则无法构建和GPU服务器之间的通讯。若6000端口不开放则远程无法访问。
端口开启需要进入云服务器的控制台界面:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)