প্রকল্প সম্পর্কে
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
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.