这个项目能做什么

frp 是一款快速反向代理工具,旨在将通过 NAT 或防火墙隐藏的内部服务器暴露至 Internet。项目由两部分组成:部署在有公网 IP 机器上的 `frps`(服务端),以及部署在内网机器上的 `frpc`(客户端)。 支持的协议包括 TCP、UDP、HTTP 和 HTTPS。frp 可通过自定义域名转发请求至内部服务,并提供 P2P 直连模式(`xtcp`)以实现客户端之间的数据传输。 主要特性: - **协议支持**:TCP、UDP、HTTP、HTTPS 及 P2P(xtcp) - **配置格式**:TOML、YAML 和 JSON(v0.52.0 起 INI 已弃用) - **身份认证**:基于 Token 和 OIDC(Client Credentials Grant) - **加密传输**:支持 TLS 加密客户端与服务端通信 - **服务端仪表板**:可通过可配置端口访问 Web 界面,查看代理统计与状态 - **客户端管理界面**:通过 Web 界面检查和实时管理 frpc 配置与代理 - **动态代理管理**:通过 Store 功能创建、更新或删除代理,无需重启 frpc - **连接复用**:支持 TCP 流复用和 TCP 端口复用 - **传输协议**:支持 KCP 和 QUIC 协议 - **连接池** - **负载均衡与健康检查** - **每代理带宽限制** - **HTTP 特性**:Host 头重写、自定义 Header、URL 路由、Basic Auth、获取真实 IP(X-Forwarded-For、Proxy Protocol) - **端口复用** - **frpc 配置热加载** - **客户端插件**:unix_domain_socket、static_file、https2http 等 - **SSH 隧道网关** - **虚拟网络(VirtualNet)** - **配置模板环境变量支持** - **通过 include 拆分配置文件为多个文件** - **Prometheus 监控端点** 常见应用场景包括通过 SSH 访问内网计算机、使用自定义域名暴露内部 Web 服务、DNS 查询转发、暴露 Unix 域套接字(例如 Docker)、通过 tcpmux/HTTP Connect 在同一端口共享多个服务,以及使用 STCP(Secret TCP)模式配合预共享密钥私密暴露服务。 该项目目前基于 Go 语言积极维护,且 v2 版本正在基于云原生和 ServiceMesh 理念开发中,但 v2 将与 v1 不兼容。 官方网站:https://github.com/fatedier/frp