跳到主要内容

隧道协议详解

RelayX 支持多种隧道协议,每种协议适用于不同的使用场景。本文将详细介绍各种协议的特点和适用场景。

协议总览

协议加密传输层多路复用适用场景
TCPTCP通用 TCP 转发,性能最佳
MTCPTCP多连接 TCP 场景,减少连接开销
UDPUDP游戏、实时音视频等低延迟场景
WSSWebSocket + TLS加密传输,可穿透 CDN/防火墙
MWSSWebSocket + TLSWSS + 多路复用,高效加密传输
TLSTLS标准 TLS 加密传输
MTLSTLSTLS + 多路复用
QUICQUIC (UDP)基于 UDP 的现代加密协议
RelayX自研协议RelayX 自研协议,综合性能最优

协议详解

TCP

最基础的隧道协议,直接转发 TCP 流量,无加密无额外开销。

优点

  • 性能最佳,延迟最低
  • 兼容性最好

缺点

  • 明文传输,数据可被监听
  • 容易被识别和干扰

适用场景:内网环境、不需要加密的场景。

MTCP(多路复用 TCP)

在 TCP 基础上增加了多路复用能力,多个连接共享同一个底层 TCP 连接。

优点

  • 减少 TCP 连接建立的开销
  • 适合大量短连接场景

缺点

  • 明文传输
  • 多路复用增加少量额外延迟

适用场景:大量短连接的 TCP 转发场景。

UDP

直接转发 UDP 流量,适用于需要低延迟的场景。

优点

  • 低延迟
  • 适合实时数据传输

缺点

  • 明文传输
  • 不保证数据到达

适用场景:游戏加速、实时音视频、DNS 转发等。

WSS(WebSocket Secure)

基于 WebSocket + TLS 的加密隧道,数据通过加密的 WebSocket 通道传输。

优点

  • 全程加密
  • 可穿透大部分 CDN 和防火墙
  • 兼容 HTTP 代理

缺点

  • WebSocket 握手增加额外延迟
  • 性能略低于纯 TCP/TLS

适用场景:需要穿透 CDN 或复杂网络环境的加密场景。

MWSS(多路复用 WSS)

WSS 的多路复用版本,多个连接共享同一个 WebSocket 连接。

优点

  • WSS 的所有优点
  • 多路复用减少连接开销

缺点

  • 多路复用增加少量额外延迟

适用场景:需要穿透 CDN 且连接较多的场景。

TLS

标准 TLS 加密隧道,数据直接通过 TLS 加密传输。

优点

  • 加密安全
  • 性能优于 WSS

缺点

  • 可能被部分网络设备识别为非标准 HTTPS 流量

适用场景:需要加密传输的通用场景。

MTLS(多路复用 TLS)

TLS 的多路复用版本。

优点

  • TLS 加密 + 多路复用
  • 性能优于 MWSS

缺点

  • 多路复用增加少量额外延迟

适用场景:需要加密传输且连接较多的场景。

QUIC

基于 UDP 的现代传输协议,内置加密和多路复用。

优点

  • 基于 UDP,连接建立速度快
  • 内置多路复用,无队头阻塞
  • 在不稳定网络环境下表现优秀
  • 支持连接迁移(如 Wi-Fi 切换到移动网络)

缺点

  • 部分网络可能封禁 UDP 流量
  • CPU 开销比 TCP 略高

适用场景:弱网络环境、移动网络、需要快速连接建立的场景。

RelayX

RelayX 自研的隧道协议,在加密、多路复用、性能之间取得最佳平衡。

优点

  • 自研协议,综合性能最优
  • 加密安全
  • 内置多路复用
  • 针对隧道场景专项优化

适用场景:推荐作为默认协议使用,适用于大部分场景。

协议选择建议

推荐

如果不确定选择哪种协议,建议使用 RelayX 协议,它在大多数场景下都能提供最佳的综合体验。

入口监听协议与转发地址协议

上面介绍的「隧道协议」决定的是入口节点与出口节点之间的传输方式,是隧道内部链路的封装协议。除此之外,隧道还可以在两端各自指定一个应用层协议

  • 入口监听协议listen_protocol):入口节点对客户端暴露的协议,决定客户端用什么协议接入隧道
  • 转发地址协议forward_addresses_protocol):出口节点(或在不带出口节点组的模式下由入口节点直接)连接目标服务时使用的协议

数据流向示意:

客户端 ──[入口监听协议]──> 入口节点 ──[隧道协议]──> 出口节点 ──[转发地址协议]──> 目标服务

两端协议都为空时(默认 TCP/UDP),隧道按 L4 透明转发原始流量,不做任何应用层解析。

支持的协议

协议入口监听协议转发地址协议说明
TCP/UDP(默认)透明转发,不解析应用层
HTTPHTTP 代理,可设置用户名/密码
SOCKS5SOCKS5 代理,可设置用户名/密码
Shadowsocks用户名为加密方式(chacha20-ietf-poly1305、aes-128-gcm、aes-256-gcm),密码为预共享密钥
RelayRelayX 内部协议
WireGuard仅入口可用,保存后服务端会自动生成密钥对,可通过二维码导出客户端配置
备注

入口监听协议受入口节点组的「允许入口监听协议」开关控制,节点组未开启时该字段会被忽略,入口仍按 TCP/UDP 处理。

协议转换

入口监听协议和转发地址协议可以任意组合,因此这两个字段最常见的用途就是做协议转换 —— 客户端用一种协议接入,目标服务用另一种协议对接,由 RelayX 在中间完成翻译。

典型场景:

  • 暴露 SOCKS5/HTTP 代理给客户端,回源到任意 TCP 服务 入口监听 = SOCKS5(或 HTTP),转发地址协议 = 默认。客户端使用标准浏览器/系统代理即可经隧道访问内网或目标网络。

  • 把 Shadowsocks 服务接入隧道 转发地址协议 = Shadowsocks,并填好加密方式和密码,目标地址指向已有的 SS 服务端;客户端可以用 SOCKS5/HTTP 等更通用的方式接入入口,由出口节点再握手到 Shadowsocks 后端。

  • WireGuard 网关 入口监听 = WireGuard,转发地址协议 = 默认。RelayX 会自动生成密钥对,客户端扫描二维码导入 WireGuard 配置后,所有流量经隧道出口转发到目标。

  • 代理协议级联 入口和转发地址协议同时设置(例如入口 HTTP、转发 SOCKS5),可在一条隧道内完成「HTTP → SOCKS5」之类的协议桥接,无需在客户端或服务端再部署转换层。

提示

协议转换发生在入口/出口节点本地,不会改变中间隧道协议的选择 —— 你仍然可以独立挑选 RelayX、QUIC、WSS 等作为节点之间的传输协议来兼顾加密、穿透和性能。