704 字
4 分钟
Stcp 和 Xtcp区别

FRP 的 StcpXtcp 是两种不同的点对点通信模式,它们的核心目标都是避免将服务直接暴露在公网中,但在实现方式和使用场景上有一些关键区别。以下是它们的详细对比:


1. Stcp(Secure TCP)#

  • 工作原理
    • Stcp 是一种基于 TCP 的加密隧道模式,数据通过 FRP 服务端中转,但不会直接暴露在公网中。
    • 服务提供者和访问者都需要配置相同的共享密钥(sk),只有密钥匹配的客户端才能建立连接。
  • 优点
    • 数据通过 FRP 服务端中转,适合网络环境不支持 P2P 穿透的场景。
    • 配置简单,适合小范围的点对点通信。
  • 缺点
    • 数据需要经过 FRP 服务端中转,可能会增加延迟。
    • 不适合大规模公开访问的场景。
  • 适用场景
    • 需要安全访问内网服务,且网络环境不支持 P2P 穿透的场景。

2. Xtcp(UDP-based P2P TCP)#

  • 工作原理
    • Xtcp 是一种基于 UDP 的 P2P 穿透模式,尝试在服务提供者和访问者之间建立直接的点对点连接。
    • 如果 P2P 穿透成功,数据将直接在两台机器之间传输,不再经过 FRP 服务端中转。
    • 如果 P2P 穿透失败,FRP 会自动回退到服务端中转模式。
  • 优点
    • 如果 P2P 穿透成功,数据传输延迟更低,带宽利用率更高。
    • 适合需要高效点对点通信的场景。
  • 缺点
    • P2P 穿透依赖于网络环境(如 NAT 类型),在某些网络环境下可能无法成功。
    • 配置相对复杂,需要确保 UDP 端口可用。
  • 适用场景
    • 需要高效点对点通信,且网络环境支持 P2P 穿透的场景。

3. Stcp 和 Xtcp 的对比#

特性StcpXtcp
通信方式通过 FRP 服务端中转尝试 P2P 穿透,失败时回退到服务端中转
协议基于 TCP基于 UDP
延迟较高(数据经过服务端中转)较低(如果 P2P 穿透成功)
带宽利用率较低较高
配置复杂度简单较复杂
适用网络环境任何网络环境需要支持 P2P 穿透的网络环境
安全性高(数据加密,密钥验证)高(数据加密,密钥验证)
适用场景小范围点对点通信高效点对点通信

4. 如何选择 Stcp 和 Xtcp#

  • 选择 Stcp 的情况
    • 网络环境不支持 P2P 穿透(如对称型 NAT)。
    • 对延迟和带宽要求不高。
    • 配置简单,适合快速搭建点对点通信。
  • 选择 Xtcp 的情况
    • 网络环境支持 P2P 穿透(如全锥型 NAT)。
    • 对延迟和带宽要求较高。
    • 需要高效的点对点通信。

Stcp 和 Xtcp区别
https://yanghc.dev/posts/66c2ef13/
作者
竹林听雨
发布于
2024-05-25
许可协议
CC BY-NC-SA 4.0