0x01 前言FRP介绍及原理
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frpc和frps之间维持了一个长tcp连接,通过这个tcp连接进行控制指令的传递,如下图:
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绑定
用户访问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
Comments NOTHING