প্রকল্প সম্পর্কে

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