引言
frp 官方地址: https://github.com/fatedier/frp/blob/dev/README_zh.md
例如我们平时开发过程中遇到联调微信/支付宝支付等第三方服务时,我们请求了微信/支付宝的支付接口,微信/支付宝官方需要给我们响应,用来表示支付是否成功,此时就需要请求我们暴露在公网的接口地址。我们可以实用 frp 作为内网穿透工具,这样我们就可以本地接收到微信或者支付宝返回给我们的请求,还是很实用的。
整体的流程我这里做一些简单的阐述,首先购买一台外网服务,在服务山部署 frp 服务,同时在自己电脑上也开启 frp 服务,调通后,将微信/支付宝的响应请求的地址(通常官方都会有让用户输入请求地址的选项)改为我们服务器的公网地址,当微信或者支付宝请求服务器地址时,服务器会把请求转发到本机,此时我们在本机打断点就可以拦截到。大致流程如图 1-1 所示
frp 具体配置
frp 是什么?
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
为什么使用 frp?
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
下载
注意: 选择好自己系统对应的架构和CPU类型
使用
下载好之后服务器和本机各放一份。 文件目录如下:
配置服务端配置文件
1 | [common] |
配置客户端配置文件
1 | [common] |
参数解释:
server_addr
服务器的IP地址server_port
和服务端对应的通信端口type
类型local_ip
本机IPlocal_port
访问本地的端口remote_port
服务器用于转发的端口
访问服务器的 80 端口,会转到到本地的 8088 端口
启动
编写配置文件,先通过 ./frps -c ./frps.ini
启动服务端,再通过 frpc -c ./frpc.ini
启动客户端。如果需要在后台长期运行,建议结合其他工具使用,例如 systemd
和 supervisor
。
服务端启动成功后打印的日志如下:
1 | [[email protected] frp_0.36.2_linux_386]# ./frps -c ./frps.ini |