frp 三种 Web 穿透架构的性能与处理能力对比(精简技术版)

社区话题 frp 三种 Web 穿透架构的性能与处理能力对比(精简技术版)

标签: ,

  • 该话题为空。
正在查看 0 条回复
  • 作者
    帖子
    • #1394

      追光
      管理员

      本文对三种常见 frp Web 穿透架构进行工程级对比,重点放在 性能上限、frps 处理压力、并发能力与长期可维护性。

      模式一:公网 Nginx + frp TCP 模式
      该模式由公网 Nginx 负责所有 HTTP/HTTPS 的七层处理,包括域名路由、限流、缓存和安全控制,frps 与 frpc 仅作为纯 TCP 隧道转发数据,不参与任何应用层逻辑。其优点是职责清晰、性能稳定、扩展能力强,frps 负载极低,适合中高并发、长期运行的生产环境,是工程实践中最均衡、最推荐的方案。

      模式二:frps vhost(HTTP 模式)
      该模式由 frps 直接解析 HTTP/HTTPS 请求,并基于 Host 头进行路由转发,实现多域名共享端口。部署简单,不依赖公网 Nginx,适合端口受限或快速搭建场景。但 frps 需承担七层解析与路由开销,在高并发下更易成为瓶颈,整体性能和扩展上限低于 TCP 模式。

      模式三:frp 纯 TCP 80/443 直通模式
      该模式中 frps 直接监听公网 80/443,并以 TCP 方式透明转发至本地 80/443,完全不感知 HTTP 协议,性能和延迟表现最佳。但不支持多站点与七层控制,frps 故障会导致全站不可用,工程弹性和安全性最弱,适合单站点、追求极限性能的场景。

      frps使用tcp协议通信到frpc + Nginx真实IP获取三种部署模式指南


      一、三种模式定义(统一口径)

      模式一:Nginx + frp TCP 模式

      (公网 L7,frp 只做隧道)

      Client
      → 公网 Nginx(HTTP/L7)
      → frps(type = tcp)
      → frpc
      → 本地服务

       

      模式二:frp 纯 TCP 80→80 / 443→443

      (完全透明隧道)

      Client
      → frps(type = tcp,80 / 443)
      → frpc
      → 本地 Nginx(80 / 443)

      模式三:frps vhost(HTTP 模式)

      (frp 直接做 L7)

      Client
      → frps(vhost_http / vhost_https)
      → frpc(type = http / https)
      → 本地服务


      二、本质差异:frps 是否进入 L7

      模式 frps 层级 是否解析 HTTP
      模式一 L4 否
      模式二 L7 是
      模式三 L4 否

      这决定了所有性能、并发、上限差异。


      三、frps 性能与负载能力对比(核心结论)

      1. CPU 与处理路径
      模式一 / 模式二

      • frps 仅做 TCP read/write
      • 无字符串解析、无路由决策
      • 接近裸 TCP 转发性能

      模式三

      • frps 解析 HTTP 请求
      • 匹配 Host、注入 Header
      • 典型 L7 转发成本

      结论
      在同等硬件条件下:

      模式二 ≈ 模式一 >> 模式三

      frps 在模式三中更早成为 CPU 瓶颈。

       

      2. 并发与吞吐能力

      指标—-模式一 —模式三 —模式二
      并发连接–高- —-中——–极高
      吞吐上限–高—–较低——最高
      延迟—–低—–略高——最低

      模式三的瓶颈来自 HTTP 解析与路由复杂度,而非网络。

      四、工程弹性与风险对比(必须考虑)

      维度————-模式一—模式三—-模式二
      多域名————强——强——-无
      限流 / WAF / 缓存—强——弱 ——无
      故障隔离 ———-强 —–中——-弱
      扩展性————强——有上限—极弱
      frps故障影响——–局部—-局部—-全站

      模式二虽然性能最好,但工程风险最大:
      frps 一旦异常,公网 80 / 443全部不可用。远程服务器与本地服务器是1:1对应关系,当然配置最简单,性能最强。


      五、选型结论(极简决策)
      • 追求长期稳定、可扩展、高并发 Web
      → 模式一(最均衡、最工程化)
      • 端口受限、轻量部署、低并发 Web
      → 模式二(最强隧道性能)

      → 模式三(vhost)
      • 单站点、极限性能、可接受风险


      六、一句话总结

      把 HTTP 留给 Nginx,仅仅只用frps当作“隧道”,比让 frp 做 L7协议的http协议模式更强。

      这是三种模式所有差异背后的统一逻辑。

正在查看 0 条回复
  • 在下方一键注册,登录后就可以回复啦。