目录
一、前言
1、概述
2、原理
3、支持功能
4、适用场景
二、环境准备
三、使用
1、安装包下载
2、服务端部署
2.1、上传安装包
2.3、启动服务端
3、客户端部署
3.1、代理服务准备
3.2、上传安装包
3.3、客户端配置
3.4、启动客户端
4、功能验证
一、前言
1、概述
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
2、原理
frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。
内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。
用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。
3、支持功能
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
4、适用场景
由于网络限制、安全限制不能将内网服务直接暴露到公网上,但是又想要在公网上又能安全的访问到内网服务的场景。
二、环境准备
机器名称 | 操作系统 | 用途 | 数量 |
客户端 | Windows | FRP界面浏览 | 1 |
FRP服务端 | centos 7 | FRP服务端代理 | 1 |
FRP客户端 | centos 7 | FRP代理内网服务 | 1 |
三、使用
1、安装包下载
frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。
下载地址:https://github.com/fatedier/frp/releases
大家下载对应的版本即可,我这里使用的是 frp_0.45.0_linux_amd64.tar.gz
2、服务端部署
2.1、上传安装包
将上面的安装包上传到服务器上,解压安装包。
#上传安装包
rz
#解压安装包
tar -zxvf frp_0.45.0_linux_amd64_\(1\).tar.gz
2.2、服务端配置
编辑服务端配置文件,配置信息如下:
#进入解压目录
cd frp_0.45.0_linux_amd64
#编辑服务端配置文件
vim frps.ini
2.3、启动服务端
将服务端启动并验证是否启动成功。
#启动服务端
./frps -c ./frps.ini
当执行上面命令出现 frps started successfully 表示启动成功。
3、客户端部署
3.1、代理服务准备
我这边使用tomcat作为模拟内网代理服务,大家可根据自己的实际情况进行调整。
下载地址:Apache Tomcat® - Apache Tomcat 9 Software Downloads
然后进行安装
#上传安装包
rz
#解压安装包
tar -zxvf apache-tomcat-9.0.69.tar.gz
#进入解压目录
cd apache-tomcat-9.0.69
#启动tomcat 服务
./bin/startup.sh
通过访问 http://ip:8080,若出现以下界面则表示部署成功
3.2、上传安装包
将上面的frp_0.45.0_linux_amd64.tar.gz安装包上传到客户端并解压
#上传安装包
rz
#解压安装包
tar -zxvf frp_0.45.0_linux_amd64_\(1\).tar.gz
#进入解压目录
cd frp_0.45.0_linux_amd64_\(1\).tar.gz
3.3、客户端配置
编辑客户端配置文件
vim frpc.ini
内容如下:
3.4、启动客户端
将客户端进行启动并验证是否启动成功。
#启动客户端
./frpc -c ./frpc.ini
当出现start proxy success表示启动成功
4、功能验证
因我使用的是虚拟机进行部署,FRP服务端没有部署到公网上,所以我将浏览器客户端修改hosts文件进行操作
再到浏览器上访问 http://my.frp:8888/ ,即可出现刚刚FRP代理的客户端Tomcat服务
到此,FRP的入门级使用介绍将告于段落,更多精彩技术分享请浏览本人博客:
不甘于平凡的溃败的博客_CSDN博客-java,数据库,IDEA领域博主