0x01 前言FRP介绍及原理

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

frpc和frps之间维持了一个长tcp连接,通过这个tcp连接进行控制指令的传递,如下图:

FRP连接模式

TCP一直进行双向连接,用户流量请求VPS后转给内网主机,内网主机处理后返回给VPS,由VPS在传送给用户,如文件在内网主机时,此时VPS需下载后在上传给用户。

其中FRPC是客户端安装在内网机器上,FRPS为服务端安装在VPS上;

frpc请求包2种类型:

  • frpc启动时,发送请求启动proxy server监听端口包
  • 当收到frps命令时,请求建立工作tcp连接包,该工作tcp连接用于传输用户数据

frps控制包1种类型:

  • 给frpc发送指令,让frpc建立一条向frps指定端口的工作tcp,并在这个tcp上发送请求建立工作tcp连接包,以便frps能够识别出这个工作tcp,并将该工作tcp与用户tcp绑定
FRP连接模式

用户访问frps指定端口

通过控制tcp连接 frps向frpc发送建立一个新的工作tcp指令

收到frps指令后 frpc新建一条本地tcp和工作tcp,并将这两个tcp绑定。之后通过工作tcp发送该工作tcp所属的代理名至frps,一边frps识别。

收到工作tcp上的请求后,通过代理名找到对应的用户tcp,将工作tcp与用户请求tcp绑定。此时,用户和目标地址之间就建立起如下所示的tcp链路,就可以开始互相传输数据啦!

0x02 安装FRPS 服务器端

注意事项:记得给使用的端口开放防火墙,开放防火墙,开放防火墙

FRPS安装可以使用一键脚本:MvsCode/frps-onekey: Frps 一键安装脚本&管理脚本 A tool to auto-compile & install frps on Linux (github.com)

Uninstall(卸载)

./install-frps.sh uninstall

Update(更新)

./install-frps.sh update

Server management(服务管理器)

Usage: /etc/init.d/frps {start|stop|restart|status|config|version}

安装步骤:

脚本有两个源,国外VPS可以用Github的源,国内的VPS建议使用Aliyun的源,要不可能很慢。本教程使用的就是Aliyun的源

Aliyun

wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

Github

wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

1、选择源,1是Aliyun,2是Github。我们选1

2、选择服务端口。默认是5443。这个端口的作用是在客户端连接服务端时是通过这个端口连接的。可以不用修改,也可以指定端口;

3、设置http连接的端口。默认80,没有被占用就默认

4、设置https连接的端口。默认443,没有被占用就默认

5、设置面板的端口。这个就是web页面管理端口了。IP:端口 就可以查看FRP运行情况及流量;可以默认就好;

6、设置登录面板的用户名和密码,根据个人喜好设置;

7、设置token。客户端需要填写的 ,这个相当于一把钥匙,有这个VPS才能接受内网机心跳包;一定要设置复杂一些;其实默认也可以

8、设置域名,如果有就填写,没有就默认IP

9、剩下的配置就全部默认就好;

一顿回车会出现这个页面,这个就是所有配置参数,一定要复制保存好,客户端需要使用;

10、启动服务

frps start

出现这个就证明运行成功了

11、打开浏览器测试一些FRP是否开启运行正常,http://IP:6443

输入刚刚设置的账号密码
至此,FRPS安装完成,现在只需要安装客户端即可使用;

郑州90后一名计算机爱好者,希望能通过网络结交更多朋友!
最后更新于 2022-06-19