frp 0.71 介绍与选型指南
frp 0.71 介绍与选型指南:基于官方公开资料溯源的内网穿透与反向代理工具解析——版本信息基准、frps/frpc 双端架构、多协议代理与热重载等能力清单、官方快速上手示例、适用场景与限制,以及与 rathole、cloudflared、ngrok、WireGuard 的量化选型对比。
frp 0.71 介绍与选型指南
目标:面向内网穿透与内网服务公网发布场景,基于官方公开资料(GitHub 官方仓库 fatedier/frp、官方网站 gofrp.org)梳理 frp 的版本信息、双端架构、功能特性、快速上手路径与选型对比。本文为认知类介绍文档,全部信息均来自官方公开渠道溯源,未做本地安装与运行实测,查询日期为 2026-10-19。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方公开资料溯源(GitHub 官方仓库 fatedier/frp 的 Releases/README、官方网站 gofrp.org),本文不做本地安装与运行实测。
- 版本结论:frp 当前稳定版本线为 0.71.x,最新补丁 v0.71.1(2026-10-14 发布)。配置文件自 0.52.0 起默认采用 TOML 格式,本文示例均采用 TOML。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新补丁 | v0.71.1(2026-10-14) | github.com/fatedier/frp/releases |
| 近期发版时间线 | v0.71.0(2026-08-14)、v0.70.1(2026-07-23)、v0.70.0(2026-07-11)、v0.69.1(2026-06-01)、v0.69.0(2026-05-21)、v0.68.1(2026-04-13) | github.com/fatedier/frp/releases |
| 源码构建要求 | v0.71.1 起要求 Go 1.26.0+ | 官方 README/发行说明 |
| 代码仓库 | fatedier/frp(Go,创建于 2015-12-21) | github.com/fatedier/frp |
| 开源许可 | Apache License 2.0 | 仓库 LICENSE |
| 社区热度 | ≈110k stars(shields.io 服务端口径,2026-10-19) | shields.io |
| 官方文档 | https://gofrp.org(含中文/英文文档站) | gofrp.org |
1.3 官方来源清单
| 来源 | 地址 |
|---|---|
| 官方网站 | https://gofrp.org/ |
| 源码仓库 | https://github.com/fatedier/frp |
| 发行页 | https://github.com/fatedier/frp/releases |
| 中文文档 | https://gofrp.org/zh-cn/docs/ |
| 快速上手(README) | https://github.com/fatedier/frp#quick-start |
二、软件概述
本文介绍的是 frp v0.71.1(当前稳定线 0.71.x 的最新补丁,2026-10-14 发布)。
frp(Fast Reverse Proxy)是一款用 Go 编写的高性能反向代理工具,专注于将 NAT 或防火墙后的内网服务暴露到公网:在具备公网 IP 的机器上运行服务端 frps,在内网机器上运行客户端 frpc,两者建立长连接后,公网流量即可经 frps 转发至内网服务。项目以 Apache License 2.0 发布,由 fatedier 主导维护,自 2015 年开源至今。
frp 在 GitHub 上拥有约 110k stars(shields.io 服务端口径,2026-10-19 实查),是内网穿透领域事实上的开源标杆。其能力覆盖 TCP/UDP/HTTP/HTTPS 等多协议代理、加密压缩、负载均衡、健康检查、流量限速与插件扩展,既适合个人远程访问,也能承载生产级的内网服务发布。
三、核心架构
3.1 frps/frpc 双端模型
- frps(服务端):部署在公网机器上,监听客户端连接与公网访问流量,执行鉴权、端口分配、流量转发与访问控制(端口白名单等)。
- frpc(客户端):部署在内网机器上,主动与 frps 建立连接(无需内网开放入站端口),按配置将本地服务注册为代理,并支持热重载配置。
3.2 连接与传输层
frpc 与 frps 之间的控制连接和数据连接支持 TLS 加密与压缩;传输协议可选 TCP、KCP(降低延迟、弱网更友好)、QUIC,并支持 TCP 流多路复用与连接池,减少握手开销(官方 README 能力清单)。
3.3 配置体系
配置自 0.52.0 起默认 TOML,分为服务端配置(frps.toml)与客户端配置(frpc.toml);支持环境变量注入、多配置文件拆分,frpc 侧还支持通过 Admin API 动态管理代理(官方 README Configuration Files、Dynamic proxy management 条目)。
3.4 可扩展性
两端均提供插件机制:客户端插件可将流量转接给本地处理(如静态文件、Unix Socket),服务端管理插件则可在转发链路上扩展鉴权与路由逻辑;同时原生提供 Prometheus 监控指标(官方 README 插件与监控条目)。
四、功能特性
4.1 多协议代理类型
支持 tcp、udp、http、https、tcpmux(TCP 端口复用)、stcp(安全秘密 TCP,需双方配合访问)、sudp、xtcp(P2P 穿透)等代理类型(官方 README)。其中 HTTP/HTTPS 代理支持按域名路由、URL 路由、Host 重写、自定义 Header、真实 IP 透传(X-Forwarded-For/Proxy Protocol)、Basic Auth 与自定义子域名。
4.2 运维与治理能力
- 鉴权与安全:Token 或 OIDC 认证,TLS 加密,服务端端口白名单,STCP/XTCP 秘密访问模式。
- 流量治理:每代理带宽限速、负载均衡、健康检查、端口范围映射、端口复用。
- 运维友好:服务端 Dashboard 与客户端 Admin UI、frpc 配置热重载、代理状态查询接口。
- 特色网关:SSH Tunnel Gateway(通过 SSH 隧道接入)、VirtualNet 虚拟网络(v0.71.1 修复了重连路由问题)、经 PROXY 协议连接 frps。
4.3 0.71 系列状态
v0.71.0(2026-08-14)发布功能版本后,v0.71.1(2026-10-14)集中修复了一批缺陷:SSH tunnel gateway 死锁、NTLM HTTP 代理畸形 challenge 引发的 panic、VirtualNet 重连路由、healthCheck.maxFailed 连续失败语义、HTTP vhost 对 CONNECT 早期数据的处理、带宽限速下连接未关闭、夏令时影响的日流量统计等(官方发行说明)。0.71 线目前处于活跃维护状态。
4.4 已知注意点
官方 README 提示:frpc 二进制文件曾被部分杀毒软件误报(对应 issue #3637),官方在文档中给出了说明与应对建议;生产部署时应核对下载物的校验值。
五、快速上手
以下示例转述自官方仓库 README 的 Quick Start 章节(https://github.com/fatedier/frp#quick-start ),本文不做本地实测。
5.1 服务端 frps
编写 frps.toml,指定服务端监听端口:
bindPort = 7000
启动服务端:
./frps -c ./frps.toml
5.2 客户端 frpc
编写 frpc.toml,指向 frps 并声明一条 SSH 代理:
serverAddr = "x.x.x.x"
serverPort = 7000
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
启动客户端后,公网侧访问 frps 所在主机的 6000 端口,即可透传到内网机器的 22 端口。更多代理类型(HTTP 域名路由、STCP 秘密访问、P2P 等)的配置方式见官方文档:https://gofrp.org/zh-cn/docs/ 。
5.3 进阶配置
frp 的完整参数体系(鉴权、TLS、仪表盘、限速、负载均衡、健康检查等)可参考本站《frp 配置参数详解》,其中对各 TOML 字段的含义与默认值做了分类拆解。
六、适用场景与限制
6.1 适用场景
- 远程运维接入:将内网 SSH、远程桌面、管理后台经 STCP/端口映射发布。
- 内网 Web 服务公网化:借助 HTTP/HTTPS 代理按域名路由多个内网站点,保留真实 IP。
- 开发联调与回调:为微信支付、OAuth 等需要公网回调的开发场景提供临时入口。
- 弱网环境接入:KCP/QUIC 传输与连接复用改善高延迟链路体验。
- 硬件/边缘设备远程管理:NAS、摄像头、IoT 控制台的公网可达。
6.2 限制与注意事项
- 需要一台公网机器:frps 必须部署在有公网 IP 且端口可入站的服务器上;无公网资源时可评估 Cloudflare Tunnel 等托管型方案。
- P2P 穿透成功率不保证:xtcp 依赖 NAT 类型组合,对称 NAT 环境下可能无法打洞,需回落中转。
- 安全边界在配置:公网暴露的服务自身仍需加固(认证、TLS、白名单),服务端应启用端口白名单避免端口被滥用。
- 杀软误报风险:frpc 存在被误报的公开记录(issue #3637),企业内网分发前需与安全团队确认。
- 小版本节奏快:0.x 阶段功能与修复迭代密集,升级前应阅读发行说明核对破坏性变更。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| frp 0.71 | 自建双端内网穿透,多协议反向代理 | Apache-2.0 |
| rathole | Rust 单二进制轻量穿透(类 frp 子集) | Apache-2.0 |
| cloudflared | Cloudflare 托管隧道客户端 | Apache-2.0 |
| ngrok | 开箱即用的公网隧道 SaaS | SaaS 闭源(商业服务) |
| WireGuard | 内核态 L3 组网 VPN | GPL-2.0 |
7.2 量化对比(2026-10-19 实查)
| 维度 | frp | rathole | cloudflared | ngrok | WireGuard |
|---|---|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | Apache-2.0(客户端) | SaaS 闭源 | GPL-2.0 |
| GitHub stars | ≈110k(shields.io) | ≈14k(shields.io) | ≈16k(shields.io) | 早期开源 agent 仓库 ≈24k(已归档) | 内核项目,无 GitHub stars 口径 |
| 最新版本 | v0.71.1(2026-10-14) | v0.5.0(2023-10-01,正式 tag;dev 构建持续) | 2026.10.1(2026-10-15,CalVer) | 持续在线服务 | 随内核/发行版交付 |
| 技术栈 | Go | Rust | Go | 闭源服务 | 内核态(C/Go 工具链) |
| 形态侧重 | frps+frpc 自建,协议广、插件与面板齐全 | 单二进制、高性能低资源,TCP/UDP/噪声加密 | 隧道服务托管于 Cloudflare 网络,Zero Trust 集成 | 免部署、临时公网 URL,免费层+付费 | L3 点对点组网,非端口映射 |
| 适用边界 | 公网机器自有时的通用方案 | 资源受限设备的轻量穿透 | 不想维护公网服务端、接受流量经第三方 | 快速临时演示与联调 | 整网组网互联而非单服务暴露 |
(stars 取自 shields.io 公开口径;版本取自各项目官方 Releases 页;许可取自各自仓库 LICENSE。)
7.3 选型建议
拥有公网服务器、需要多协议与精细控制的,frp 是功能最全面的自建方案,配套文档与社区也最成熟;只做 TCP/UDP 端口暴露且设备资源紧张的,可考虑更轻的 rathole(注意其正式发版停留在 2023 年);不愿意维护公网服务端、可接受流量经 Cloudflare 网络的,选 cloudflared;临时演示、对隐私不敏感的快速联调用 ngrok 最省事;而需求是"把两个网络连成一个"而非"暴露某个端口"时,应选 WireGuard 这类 L3 VPN(可参考本站《WireGuard 配置参数详解》)。若已确定使用 frp,建议从官方文档入手并搭配本站配置详解文档深挖参数。
八、参考链接
- 官方网站:https://gofrp.org/
- 源码仓库:https://github.com/fatedier/frp
- 发行页:https://github.com/fatedier/frp/releases
- 中文文档:https://gofrp.org/zh-cn/docs/
- rathole 仓库:https://github.com/rathole-org/rathole
- cloudflared 仓库:https://github.com/cloudflare/cloudflared
- WireGuard 官网:https://www.wireguard.com/