内网穿透三剑客:frp vs Cloudflare Tunnel vs VLESS Reality 全面对比与选型指南
家里有服务想从公网访问?选 frp 自建中转、Cloudflare Tunnel 零成本穿透,还是 VLESS Reality 极致性能?本文从架构、性能、成本、安全四个维度逐一拆解,帮你做出最适合的选择。
版本声明:本文信息基于 2026 年 5 月,所涉工具版本号(frp v0.68.1、cloudflared 等)以撰写时为准,请以各项目官方最新发布为准。
背景:一个需求,三条路
把家里的 NAS、开发环境、自托管服务暴露到公网,核心矛盾只有一个:没有公网 IP,或者有公网 IP 但 80/443 端口被封。
解决这个问题的三条主流路线:
方案 A: frp — 自建中转服务器,数据走自己的 VPS方案 B: Cloudflare Tunnel — 借用 Cloudflare 全球网络,零成本穿透方案 C: VLESS Reality — 协议级直连,伪装成普通 HTTPS 流量三条路都能到达目的地,但路径完全不同。下面逐一拆解。
三种方案架构速览
frp:经典反向代理模型
内网客户端(frpc) ──TCP 长连接──▶ 公网 VPS(frps) ◀── 外部用户 │ 端口映射 / 虚拟主机转发frp 由两部分组成:服务端 frps 跑在公网 VPS 上,客户端 frpc 跑在内网机器上。frpc 主动向 frps 建立一条控制连接,外部用户访问 frps 的端口时,流量通过这条连接反向到达内网服务。
核心特点:自己掌控中转节点,协议无限制,延迟取决于 VPS 线路。
Cloudflare Tunnel:托管式隧道
内网服务 ◀── cloudflared ──QUIC 出站──▶ Cloudflare Edge ◀── 外部用户 │ 自动 HTTPS / WAF / CDN本地运行 cloudflared 守护进程,通过 QUIC(HTTP/3)出站连接到 Cloudflare 的边缘节点。所有入站流量由 Cloudflare 全球网络接管,自动获得 HTTPS、DDoS 防护、CDN 加速。源站不需要任何入站端口。
核心特点:零服务器成本,Cloudflare 全家桶加持,但数据经过 Cloudflare。
VLESS Reality:协议级直连
客户端 ◀──TLS 1.3(伪装成访问 www.microsoft.com)──▶ VPS(Xray + Reality) │ 直连内网 / 纯转发VLESS Reality 不走传统”隧道”思路,而是直接在 VPS 上运行 Xray,利用 Reality 技术借用真实 HTTPS 站点的 TLS 指纹,让代理流量外观与正常 HTTPS 流量完全一致。无需域名、无需证书、无需 Nginx。
核心特点:极致轻量,伪装强度高,但需要 VPS 且不兼容 CDN。
基础属性对比
| 维度 | frp | Cloudflare Tunnel | VLESS Reality |
|---|---|---|---|
| 类型 | 自托管反向代理 | 商业托管隧道 | 协议级代理 |
| 开源 | ✅ Apache 2.0 全开源 | 客户端开源,服务端私有 | ✅ MPL 2.0 全开源 |
| 需要公网 VPS | ✅ 必须 | ❌ 不需要 | ✅ 必须 |
| 需要域名 | 可选(推荐) | ✅ 必须(托管在 CF) | ❌ 不需要 |
| 需要证书 | 需自行配置 | 自动 HTTPS | ❌ 不需要(Reality 借用) |
| 部署复杂度 | 中等 | 低 | 较高(需代理协议经验) |
| 典型延迟(国内) | <10ms(同地域 VPS) | 100–500ms(绕境外) | <10ms(同地域 VPS) |
| 适合人群 | 有 VPS,追求自主可控 | 无 VPS,面向海外用户 | 有 VPS,追求极致性能与隐蔽性 |
协议支持
| 协议类型 | frp | Cloudflare Tunnel | VLESS Reality |
|---|---|---|---|
| HTTP/HTTPS | ✅ | ✅ | ✅(通过代理) |
| TCP 通用 | ✅ | ✅ | ✅ |
| UDP | ✅ | ❌ 公网路由不支持(见注) | ✅ |
| WebSocket | ✅ | ✅ | ✅ |
| gRPC | ✅ | ✅ | ✅ |
| SSH | ✅ 纯转发 | ✅ 含浏览器终端 | ✅ 纯转发 |
| RDP | ✅ 纯转发 | ✅ 含浏览器渲染 | ✅ 纯转发 |
| 游戏联机 | ✅ | ❌(UDP 公网路由不支持) | ✅ |
frp 支持全部代理类型:TCP、UDP、HTTP、HTTPS、STCP(加密 TCP)、SUDP(加密 UDP)、XTCP(P2P 直连)。Cloudflare Tunnel 免费版 public hostname 路由仅支持 HTTP/HTTPS 和 TCP;UDP 可通过 Private Network + WARP 客户端方案(免费)或 Spectrum 实现(Spectrum 为 Enterprise 级附加产品,合约 $3,000–5,000+/月,非小额按月附加组件)。VLESS Reality 底层是 TCP + UDP 代理,协议无限制。
性能对比
| 场景 | frp | Cloudflare Tunnel | VLESS Reality |
|---|---|---|---|
| 国内 ↔ 国内 | ★★★★★ <10ms | ★★ 100–500ms | ★★★★★ <10ms |
| 海外 ↔ 国内 | ★★★ 取决于 VPS 位置 | ★★★★ 利用 CF 节点加速 | ★★★ 取决于 VPS 线路 |
| 大文件传输 | ★★★★★ 无限制 | ★★ 请求体上限 100MB | ★★★★★ 无限制 |
| 晚高峰稳定性 | ★★★★ VPS 线路决定 | ★★★ 可能拥堵 | ★★★★ VPS 线路决定 |
| CPU 开销 | 低 | 低 | 极低(Vision 流控优化) |
延迟差异的根本原因:
- frp 和 VLESS Reality 走的是 VPS 直连,延迟 = 你家到 VPS 的网络延迟,同地域通常 <10ms
- Cloudflare Tunnel 走的是 Cloudflare 全球网络,国内用户访问时流量必须出境绕到最近边缘节点(香港/新加坡/美西),物理距离决定了延迟 100ms 起步
Cloudflare 免费/Pro/Business 套餐在中国大陆没有边缘节点(仅 Enterprise 通过京东云合作提供,需 ICP 备案)。如果你主要服务国内用户,Tunnel 的高延迟是硬伤。
成本对比
| 成本项 | frp | Cloudflare Tunnel | VLESS Reality |
|---|---|---|---|
| 软件费用 | 免费 | 免费 | 免费 |
| VPS 费用 | 约 ¥100–500/年 | ¥0 | 约 ¥100–500/年 |
| 域名费用 | 可选(¥30–60/年) | 必须(¥30–60/年) | ¥0 |
| 带宽费用 | VPS 自带(1–10TB/月) | 免费(无限制) | VPS 自带(1–10TB/月) |
| 年度总成本 | ¥100–560 | ¥30–60 | ¥100–500 |
frp 和 VLESS Reality 的成本主要来自 VPS。国内云厂商活动机 1C1G 年付 ¥100–200 即可,国外 VPS(如 RackNerd 约 20/年)黑五价更低。
Cloudflare Tunnel 软件免费,唯一必需开销是域名(¥30–60/年),且必须将域名的 NS 记录托管到 Cloudflare。
安全性对比
| 维度 | frp | Cloudflare Tunnel | VLESS Reality |
|---|---|---|---|
| 传输加密 | 需自行配置 TLS | 默认全链路加密 | TLS 1.3(Reality 伪装) |
| 访问控制 | Token 认证 | Zero Trust(OTP/SSO/IP 白名单) | UUID 鉴权 + shortId |
| DDoS 防护 | ❌ 自己扛 | ✅ 自带 | ❌ 自己扛 |
| WAF | ❌ 需自行搭建 | ✅ 自带 | ❌ 需自行搭建 |
| 源站 IP 隐藏 | 取决于配置 | ✅ 完全不暴露入站端口 | ✅ 只暴露 Xray 端口 |
| 流量伪装 | ❌ 无(看起来像 frp 协议) | n/a(走 CF 网络,中间不可见) | ✅ 伪装成访问正常 HTTPS 站点 |
| 数据隐私 | ✅ 完全自主,无第三方 | ⚠️ Cloudflare 可解密 HTTPS | ✅ 完全自主 |
关键差异:
- frp 的安全模型是”靠自己”。Token 认证是基本盘,剩下的 TLS、防火墙、DDoS 防护都得自行搭建。默认情况下 frp 协议流量特征明显,深度包检测(DPI)可能识别。
- Cloudflare Tunnel 的安全模型是”靠平台”。Cloudflare 替你扛 DDoS、提供 WAF、Zero Trust 鉴权,代价是 HTTPS 流量在 CF 边缘节点被解密后再加密——技术上 Cloudflare 可以看到明文。
- VLESS Reality 的安全模型是”靠伪装”。它不试图防御攻击,而是让流量看起来根本不像代理流量。Reality 借用
www.microsoft.com等真实站点的 TLS 证书和握手特征,中间设备看到的就是普通 HTTPS。
隐私敏感场景(如企业内部系统、个人数据)谨慎使用 Cloudflare Tunnel。你的 HTTPS 流量在 Cloudflare 边缘节点被解密,虽然 CF 有严格的隐私政策,但技术上确实存在这个能力。
frp 安全漏洞提醒:frp v0.43.0 至 v0.68.0 存在认证绕过漏洞 CVE-2026-40910(多个安全库评定为高危:GitHub Advisory 6.5 / NIST NVD 9.1 / 阿里云漏洞库、Snyk 均标为高危),当启用 routeByHTTPUser 做 HTTP vhost 访问控制时,攻击者可通过 Proxy-Authorization 与 Authorization 头分离的机制绕过认证。务必升级到 v0.68.1+。不使用 routeByHTTPUser 的部署不受影响,但保持更新仍是基本安全习惯。
WARNINGCloudflare Tunnel 使用限制:Cloudflare 免费套餐的 CDN Service-Specific Terms 禁止通过 Tunnel 代理大量非 HTML 内容(如视频/音频流、大文件分发)。违反可能导致账号被限制。Tunnel 适合 Web 应用和 SSH/RDP,不适合搭建流媒体服务器或图床。
方案一:frp — 最灵活的自建中转
✅ 核心优势
全协议覆盖,无任何限制。 TCP、UDP、HTTP、HTTPS、STCP、SUDP、XTCP 全部支持。想暴露游戏服务器(UDP)、想 P2P 直连两台内网设备(XTCP),frp 都能做到。
延迟极低。 选一台同地域或同线路的 VPS,延迟轻松控制在 10ms 以内。
完全自主。 数据只在你的 VPS 和内网机器之间流转,没有第三方介入。
带宽取决于 VPS。 大多数 VPS 提供 1–10TB 月流量,大文件传输不受限。
生态成熟。 GitHub 100k+ stars,文档完善,社区活跃。Dashboard 面板支持实时监控连接状态和带宽使用,v0.67 重新设计 Dashboard(暗色模式 + Prometheus 集成),v0.66 起支持 HTTPS 负载均衡组和 OIDC 身份源。
❌ 核心劣势
需要 VPS。 这是最大的门槛。没有公网 VPS,frp 无法工作。
运维成本高。 你需要自己搞定:TLS 证书、Nginx/Caddy 反向代理、防火墙规则、服务进程守护、版本升级。有人觉得这是掌控感,有人觉得这是负担。
没有内置安全防护。 被 DDoS 了自己扛,被扫端口了自己封。Token 认证相对基础,精细化访问控制需要借助 Nginx 或其他中间件。
协议指纹可识别。 默认配置下 frp 协议特征较明显。如果网络环境存在深度包检测,可能被识别和干扰。启用 STCP 或套一层 TLS 可以缓解。
典型部署拓扑
公网 VPS (frps)├── 端口 7000 : frp 控制连接├── 端口 8080 → 内网 Dev 环境├── 端口 2222 → 内网 SSH└── 端口 25565 → 内网 Minecraft 服务器
内网机器 (frpc)├── [web] localhost:3000 → frps:8080├── [tcp] localhost:22 → frps:2222└── [udp] localhost:25565 → frps:25565基础 frpc.toml 配置示例(与服务端部署拓扑对应):
# frpc.toml — 内网客户端配置serverAddr = "你的VPS IP"serverPort = 7000auth.token = "你的安全令牌"
[[proxies]]name = "dev-web"type = "http"localPort = 3000remotePort = 8080
[[proxies]]name = "ssh"type = "tcp"localPort = 22remotePort = 2222
[[proxies]]name = "mc-server"type = "udp"localPort = 25565remotePort = 25565安全加固建议:
# frps.toml — 服务端bindPort = 7000auth.token = "生成一个随机长令牌"transport.tls.enable = true # 控制连接启用 TLStransport.tls.certFile = "server.crt"transport.tls.keyFile = "server.key"frp 默认不加密控制连接。强烈建议启用
transport.tls并配合 iptables/nftables 限制 frps 端口仅对必要来源 IP 开放。auth.token应使用openssl rand -hex 32生成长随机令牌,避免暴力破解。
适合谁
- 有一台 VPS(或愿意买一台)
- 需要暴露非 HTTP 协议(UDP 游戏、TCP 数据库、IoT 设备)
- 传输大文件、流媒体等高带宽场景
- 对数据隐私有要求,不想经过第三方
- 愿意花时间配置和维护
方案二:Cloudflare Tunnel — 最省心的零成本方案
✅ 核心优势
完全免费,零 VPS 成本。 不需要买任何服务器,不需要公网 IP,不需要开任何入站端口。一台内网机器 + 一个域名 + cloudflared 一条命令就够了。
自动 HTTPS + 全球 CDN。 证书自动签发和续期,无需配置。海外用户访问你的服务时自动走 Cloudflare 全球 330+ 节点加速。
安全全家桶。 自带 DDoS 防护、WAF、Bot 管理。配合 Cloudflare Access 实现 Zero Trust 鉴权:邮箱验证码、GitHub/Google OAuth、SAML SSO、IP 白名单、地区限制,精细度远超自建方案。
部署极简。
# 一条命令安装curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflaredchmod +x cloudflared
# 登录认证cloudflared tunnel login
# 创建隧道并启动cloudflared tunnel create my-tunnelcloudflared tunnel route dns my-tunnel app.example.comcloudflared tunnel run my-tunnel浏览器终端。 SSH/RDP/VNC 等 TCP 服务可以直接通过 Cloudflare 的浏览器终端访问,不需要客户端安装任何软件。
❌ 核心劣势
国内延迟高。 Cloudflare 免费/Pro/Business 套餐在中国大陆没有边缘节点,流量必须出境绕香港/新加坡/美西。实测国内访问 100–500ms,晚高峰可能更慢,部分偏远地区可达 500ms+。Enterprise 可通过京东云合作获取大陆节点,但需 ICP 备案,年费数千美元起。如果你的用户在国内,体验会比较差。
不支持 UDP 公网路由。 Tunnel 免费版的 public hostname 路由仅支持 HTTP/HTTPS 和 TCP。UDP 有两个方案:
(1) Private Network + WARP 客户端(免费):客户端安装 WARP 并加入 Zero Trust 组织后,通过 cloudflared 的 QUIC 隧道访问 UDP 服务。操作流程:Cloudflare One Dashboard → Settings → WARP Client → Device enrollment → 创建 Private Network 路由(如 10.0.0.0/8)→ 客户端设备安装 WARP 并登录。性能开销:WARP 基于 WireGuard 协议,额外延迟约 5–15ms,对游戏联机等延迟敏感场景影响不大。
(2) Cloudflare Spectrum(仅 Enterprise 套餐,合约通常 $3,000–5,000+/月,非小额按月附加组件)。
大文件受限。 免费版单个请求体(上传)上限约 100MB,晚高峰时传输速度可能降至 1MB/s 左右。不适合传输大文件和流媒体。
域名必须托管在 Cloudflare。 域名的 NS 记录必须指向 Cloudflare 的 DNS 服务器。已有其他 DNS 服务商的需求无法共存。
数据经过 Cloudflare。 HTTPS 流量在边缘节点被解密后重新加密。Cloudflare 在技术上可以查看明文流量。对隐私极度敏感的场景需注意。
强依赖 Cloudflare。 如果 Cloudflare 服务中断(罕见但发生过),你的所有 Tunnel 全部不可用。
适合谁
- 不想花钱买 VPS
- 主要服务海外用户(或国内用户能接受高延迟)
- 只需要暴露 Web 服务或 SSH/RDP
- 需要企业级安全防护(Zero Trust、WAF、DDoS)
- 快速原型演示、临时调试
方案三:VLESS Reality — 极致性能与伪装
✅ 核心优势
延迟最低,CPU 开销最小。 去掉 WebSocket 封装、去掉 Nginx 中间层、去掉证书管理,数据路径最短。XTLS Vision 流控部分评测显示可降低 CPU 开销 30–50%(社区实测,非官方基准)。
传统 WS+TLS 路径: 数据 → VLESS 封装 → WS 帧 → TLS 加密 → Nginx 解密 → Xray 解析Reality 路径: 数据 → VLESS 封装 → TLS 伪装(直出) → Xray 解析无需域名和证书。 Reality 借用真实 HTTPS 站点的 TLS 指纹(如 www.microsoft.com),第三方观测到的就是访问微软官网的流量。零证书维护成本。
伪装强度高。 不是简单的端口转发或隧道封装,而是直接在 TLS 层面模拟目标站点的握手行为。目前已知的 DPI 系统难以有效识别。
自主可控。 数据只经过你自己的 VPS,不依赖任何第三方平台。
❌ 核心劣势
不兼容 CDN。 Reality 的 TLS 伪装绑定在特定目标站点,无法套 CDN。如果 VPS IP 被墙或线路差,没有 CDN 做缓冲。配套的 VLESS + WS + TLS + CDN 架构更重但更抗封锁。
部署门槛较高(对比 frp 和 Tunnel)。 Xray 不是开箱即用的隧道工具——你需要掌握 VLESS 协议语义、Reality 的 TLS 指纹借用与 dest 目标站点选择策略、Vision 流控原理、Xray 配置文件结构及路由规则。选错 dest 或 serverNames 不仅无法工作,还可能暴露流量特征。建议先阅读本博客 VLESS 三部曲建立基础后再动手。
不支持 HTTP Host 路由。 VLESS 协议不解析 HTTP Host 头,无法像 frp 的 vhost 路由或 Nginx 反向代理那样基于域名分发流量到不同后端。如果你需要 a.example.com → 服务A、b.example.com → 服务B 这样的路由,VLESS Reality 无法直接实现,需要叠加 frp 或 Nginx 做二次分发。
只适合代理流量,不是通用的”隧道”。 frp 和 Cloudflare Tunnel 可以把任何 TCP/UDP 端口映射出去。VLESS Reality 本质是代理协议,适合作为网络入口,不适合暴露数据库、游戏服务器等。
没有内置安全防护。 和 frp 一样,DDoS、WAF、访问控制需要自己搭建。
需自行关注安全公告。 Xray-core 作为活跃的开源项目,时有安全更新发布。部署后建议定期查看 Xray-core GitHub Security 页面 或订阅 Release 通知,及时升级。
客户端兼容性风险。 Reality 协议需要客户端支持(v2rayN、v2rayNG、Shadowrocket、Sing-box 等主流客户端均已支持),但部分小众或老旧客户端可能不完全兼容 Reality + Vision flow,部署前需确认你的客户端在支持列表中。
典型配置片段
{ "inbounds": [{ "port": 443, "protocol": "vless", "settings": { "clients": [{"id": "你的-UUID", "flow": "xtls-rprx-vision"}], "decryption": "none" }, "streamSettings": { "network": "tcp", "security": "reality", "realitySettings": { "dest": "www.microsoft.com:443", "serverNames": ["www.microsoft.com"], "privateKey": "你的私钥", "shortIds": ["abcdef"] } } }]}适合谁
- 有代理协议部署经验(至少熟悉 Xray 或类似工具的基本概念)
- 有 VPS,追求极致低延迟和低 CPU 开销
- 不想维护域名和证书
- 需要流量伪装,对抗深度包检测
- 作为个人代理入口(配合内网路由访问内部服务)
- 已阅读本博客 VLESS 三部曲或具备等效知识
选型决策:一张图帮你决定
需要对外暴露服务 │ ┌─────────┴─────────┐ │ │ 有公网 VPS? 没有 VPS? │ │ ┌─────┴─────┐ Cloudflare Tunnel │ │ (零成本,自动 HTTPS, 需要 UDP 不需要 UDP 国内延迟高) 或极致性能? │ │ │ ┌─────┴─────┐ │ │ │ │ 需要流量伪装 不需要 │ 对抗 DPI? 伪装 │ │ │ │ VLESS frp frp Reality (灵活、全协议) (低延迟、 Cloudflare Tunnel 无需证书) (省心、安全全家桶)简化版决策逻辑:
| 你的情况 | 推荐方案 |
|---|---|
| 没 VPS,不想花钱 | Cloudflare Tunnel |
| 有 VPS,需要暴露各种协议 | frp |
| 有 VPS,主要做代理入口,追求低延迟 | VLESS Reality |
| 服务国内用户,要低延迟 | frp 或 VLESS Reality |
| 服务海外用户,要自动 HTTPS + CDN | Cloudflare Tunnel |
| 既要低延迟又要 UDP + 又要零运维 | frp + Cloudflare Tunnel 组合使用 |
组合方案:取长补短
三种方案不互斥。实际使用中,很多人同时跑两套:
frp(主力)+ Cloudflare Tunnel(备用 + Web 服务)
内网机器├── frpc ────────▶ VPS(frps) ────────▶ 低延迟、大带宽、UDP 场景└── cloudflared ─▶ Cloudflare Edge ──▶ Web 服务自动 HTTPS、DDoS 防护frp 负责需要低延迟和高带宽的场景(SSH、文件传输、流媒体),Cloudflare Tunnel 负责 Web 服务(自动 HTTPS、WAF、CDN),两者互补。
VLESS Reality(入口)+ frp(内网分发)
客户端 ──Reality──▶ VPS(Xray) ──frp 内网穿透──▶ 内网各服务VLESS Reality 提供安全的公网入口(低延迟、伪装),frp 负责 VPS 到内网的端口映射和协议分发。这个组合兼顾了入口性能和内网灵活性。
最后的话
三个方案在各自的适用场景下都是最佳选择:
- frp 赢在灵活性和自主性。全协议支持、低延迟、数据自主,代价是 VPS 成本和运维投入。
- Cloudflare Tunnel 赢在省心和免费。零服务器成本、自动 HTTPS、安全全家桶,代价是国内延迟高和隐私妥协。
- VLESS Reality 赢在极致性能和伪装。最短数据路径、无需域名证书、流量不可识别,代价是只适合代理场景且不兼容 CDN。
选择哪个,取决于你的 VPS 预算、用户地理位置、协议需求和隐私偏好。没有银弹,只有最适合你的那颗子弹。
如果看完还是不确定,从 Cloudflare Tunnel 开始试——零成本、十分钟搞定、不满意随时换。
社区建议:优先支持 IPv6。 如果你的宽带已获取公网 IPv6 地址(国内多数运营商已默认分配),可考虑直接使用 IPv6 + DDNS 方案作为最低成本暴露路径,仅在需要 IPv4 访问、UDP 穿透或流量伪装时才叠加 frp/Tunnel/Reality。IPv6 直连延迟最低(等同本地网络),且无端口映射损耗。