项目介绍
frp 是一个基于 Golang 开源免费(Apache-2.0 license)、功能强大、专注于内网穿透的高性能反向代理应用,旨在帮助用户将位于 NAT 或防火墙后的本地服务器暴露给互联网。它支持 TCP、UDP、HTTP 和 HTTPS 协议,允许通过域名将请求转发到内部服务。此外,frp 还提供了 P2P 连接模式。
应用场景
-
通过 frp,你可以在外网访问公司内网的数据库、Web 服务或其他任何 TCP/UDP 服务。 -
开发者可以利用 frp 将本地开发环境暴露给外网,方便进行远程调试和测试。 -
在 IoT 场景中,通过 frp 可以远程管理和控制位于内网的设备。 -
游戏开发者可以利用 frp 将游戏服务器部署在内网,同时通过 frp 暴露给玩家,提高安全性和降低成本。
功能模块
-
frps(服务端):负责接收来自 frpc(客户端)的连接请求,并将请求转发到对应的内网服务。 -
frpc(客户端):部署在内网服务器上,负责发起连接请求到 frps,并将内网服务的流量转发到 frps。 -
插件系统:frp 支持通过插件扩展功能,如 HTTP 代理、SOCKS5 代理、静态文件服务等。 -
仪表盘:提供 Web 仪表盘,用于查看 frp 的状态和代理统计信息。 -
P2P 模式:支持 P2P 数据传输,减少服务器中转延迟。
功能特点
-
多协议支持:支持 TCP、UDP、HTTP 和 HTTPS 协议。 -
域名访问:可以通过域名访问内网服务,提高访问的便捷性和可管理性。 -
加密与压缩:支持 TLS 加密和数据压缩,提高传输安全性和效率。 -
负载均衡:支持基于 TCP 和 HTTP 的负载均衡,提高服务的可用性和性能。 -
健康检查:支持对后端服务进行健康检查,自动剔除不健康的服务节点。 -
连接池:支持连接池技术,减少短连接场景下的连接建立时间。 -
权限验证:支持多种权限验证方式,如 Token、OIDC 等,提高系统的安全性。 -
插件扩展:提供丰富的插件,满足用户多样化的需求。
项目架构

Web界面

开源地址
https://github.com/fatedier/frp