这个项目能做什么
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
评论
0 评分人数达到10人后显示
登录后参与讨论。