frp 是什么?

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

为什么使用 frp?

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。

采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。

代理组间的负载均衡。

端口复用,多个服务通过同一个服务端端口暴露。

支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。

多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。

高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。

服务端和客户端 UI 页面。

安装

关于如何安装 frp 的说明。

frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。

系统需求

由于采用 Golang 编写,所以系统需求和最新的 Golang 对系统和平台的要求一致,具体可以参考 Golang System requirements https://golang.org/doc/install#requirements 。

下载

目前可以在 Github 的 Release https://github.com/fatedier/frp/releases页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。

部署

解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器上,将 frps 拷贝到具有公网 IP 的机器上,放置在任意目录。

开始使用!

编写配置文件,先通过 ./frps -c ./frps.ini 启动服务端

再通过 ./frpc -c ./frpc.ini 启动客户端

如果需要在后台长期运行,建议结合其他工具使用,例如 systemd 和 supervisor

如果是 Windows 用户,需要在 cmd 终端中执行命令。