目录

代理协议组合完全手册:原理、拼法与选型

学习目的:这份文档只做一件事——把市面上五花八门的“节点协议”拆回零件,让你看到任何一个组合时,能说出它由哪几层拼成、为什么这样拼、代价是什么。

文中所有示例均为虚构占位:域名统一用 node.example.com 一类保留域名,端口统一用 443,UUID、密码、密钥全部写成占位符,不对应任何真实部署。配置片段是节选示意,用来看字段之间的关系,落地前请对照你所用核心(sing-box / Xray)的官方文档核对字段名与版本要求。


0. 阅读方法:任何组合都按四层拆

一个“节点”从来不是单个协议,而是四层拼装:

层 回答的问题 常见选项
① 代理内核 谁在说话、怎么认证、代理语义是什么 VLESS、VMess、Trojan、Shadowsocks、AnyTLS、Hysteria2、TUIC
② 传输层 内核的字节装进什么载体送过网络 裸 TCP、WebSocket、HTTPUpgrade、HTTP/2、gRPC、XHTTP、QUIC
③ 安全伪装层 怎么加密、在旁观者眼里像什么 真 TLS、REALITY、uTLS 指纹、ShadowTLS、无
④ 增强件 性能与形态的微调 Vision 流控、mux 多路复用、ALPN、端口跳跃、混淆插件

再叠加一个接入维度(不属于协议本身,但决定组合的实际形态):直连 / CDN 前置 / Tunnel 穿透 / 中转机转发。同一个协议组合,换一种接入方式,优缺点会完全不同(见第 7 章)。

拼装不是自由组合:每层之间有硬约束。比如 VLESS 没有自带加密,第 ③ 层就不能空着;Hysteria2 把 ①②③ 打包成闭环,就没有可换的外衣。理解组合 = 理解约束。


1. 代理内核详解

1.1 VLESS

1.2 VMess

1.3 Trojan

1.4 Shadowsocks(含 2022 版)

1.5 AnyTLS

1.6 Hysteria2

1.7 TUIC

1.8 参照系(不是代理内核,但常被混谈)


2. 传输层详解

2.1 裸 TCP

内核字节直接进 TCP 连接。开销最低、延迟最小,但协议特征毫无遮拦——只能配强安全层(TLS / REALITY)出门。

2.2 WebSocket(WS)

2.3 HTTPUpgrade

WS 的轻量近亲:同样借 HTTP Upgrade 起手,但升级后不再套 WS 帧,直接当管道用。少一层帧开销,生态位与 WS 大量重叠,新部署可作替代了解。

2.4 HTTP/2(H2)

直接拿 HTTP/2 的多路复用流当管道:一条 TCP 连接里开许多条 Stream 并行传不同目标的流量。性质与 gRPC 同源(gRPC 就跑在 H2 上),区别见下。

2.5 gRPC

2.6 XHTTP(SplitHTTP)

2.7 QUIC(作为传输)

Hysteria2 / TUIC 的地基:UDP 之上重建可靠、有序、加密的传输,自带连接迁移与 0-RTT。它是“传输+安全”一体件,不与 VLESS 等 TCP 系内核拼装(Xray 曾有 QUIC 传输,现已边缘化,了解即可)。

2.8 已退场的传输

KCP(UDP 模拟 TCP 提速)、DomainSocket、老式 HTTP 伪装头等,历史上都红过,现已被 QUIC 系与 XHTTP 取代。学习时认出名字即可,不必投入。


3. 安全伪装层详解

3.1 真 TLS(自己的域名与证书)

3.2 REALITY

3.3 uTLS 指纹模拟

TLS 客户端的 ClientHello 有可识别的指纹(JA3 等)。uTLS 让代理客户端把这份指纹模拟成 Chrome 等真实浏览器,使握手第一眼不像代理软件。它是给 3.1/3.2 打补丁的配角,不能独立存在。

3.4 ShadowTLS

给 Shadowsocks 这类“裸加密流”套一层真 TLS 握手外观:前段字节是与真站完成的 TLS 握手,后段才是 SS 的加密流量。相当于给 SS 补上第 ③ 层,是插件式拼装的典型例子。

3.5 “无安全层”的适用面

只存在于:内核自带加密且场景低对抗(Shadowsocks 2022 直连)、或链路本身在可信网络内(内网、已组 VPN 之上)。公网直连 VLESS/VMess 裸奔不在此列——那是错误配置,不是组合。


4. 增强件

4.1 Vision(flow = xtls-rprx-vision)

4.2 mux 多路复用

把多条逻辑连接塞进一条物理连接,省去反复握手。代价:一条连接承载一切,队头阻塞与流量特征都更集中;与 Vision 机制冲突(一个要合流拆包、一个要直通),同开必坏——这是最常见的“配置单里两个开关打架”案例。

4.3 ALPN 与版本细节

TLS 协商出的 ALPN(h2 / http/1.1)会写进流量外观,也决定某些传输能否成立(如 gRPC 需要 h2)。拼装时它是小字段、大影响:填错的表现往往不是报错,而是“连得上但特征不对”或“CDN 回源失败”。

4.4 端口跳跃与混淆(Hy2 系)

端口跳跃对付单端口 UDP 限速;salamander 混淆对付 QUIC 指纹识别。两者都是 Hy2 在敌意网络里的生存件,不改变协议本体。

4.5 回落(fallback)

Trojan 与部分 VLESS 部署会把“认证失败的流量”回落到一个真网站。回落不是加密,它买的是可探测性:让服务器在被试探时表现得像个普通站点。


5. 组合可行性总表

✓ = 主流可行 △ = 能拼但小众/有前提 ✗ = 机制上不成立

内核 \ 外层 裸 TCP 直连 + 真 TLS + REALITY + WS + H2/gRPC + XHTTP 经 CDN 经 Tunnel
VLESS ✗ 无加密 ✓(可加 Vision) ✓(可加 Vision) ✓ 配 TLS ✓ 配 TLS ✓ 配 TLS 或 REALITY ✓ 仅 HTTP 系传输 ✓ 仅 HTTP 系传输
VMess △ 自带加密、低对抗 ✓ ✗ ✓ 配 TLS ✓ 配 TLS ✗ ✓ ✓
Trojan ✗ ✓ 本体形态 ✗ ✓ Trojan+WS 变体 △ ✗ ✓ WS 变体 ✓ WS 变体
Shadowsocks 2022 ✓ 自带加密 △ 经 ShadowTLS ✗ ✓ 经插件 △ ✗ ✓ WS 插件形态 ✓ WS 插件形态
AnyTLS ✗ ✓ 本体形态 △ 视实现 ✗ ✗ ✗ ✗ TLS 被终结则失效 ✗ 同左
Hysteria2 — 自成闭环(UDP 直连) 内置 ✗ ✗ ✗ ✗ ✗ ✗
TUIC — 自成闭环(UDP 直连) 内置 ✗ ✗ ✗ ✗ ✗ ✗

读表要点:


6. 组合卡片

每张卡片统一结构:构成 → 连接流程 → 配置方法(思路+节选示意)→ 优点 → 缺点 → 适用场景。

① VLESS + TCP + REALITY + Vision —— 直连伪装天花板

// 服务端入站
{ "type": "vless", "listen": "::", "listen_port": 443,
  "users": [{ "uuid": "00000000-0000-4000-8000-000000000000", "flow": "xtls-rprx-vision" }],
  "tls": { "enabled": true, "server_name": "www.example.net",
    "reality": { "enabled": true,
      "handshake": { "server": "www.example.net", "server_port": 443 },
      "private_key": "<服务端生成的 REALITY 私钥>",
      "short_id": ["0123456789abcdef"] } } }
// 客户端出站与之对应:uuid 相同、flow 相同、tls.reality.public_key 填服务端公钥、short_id 选一个

② VLESS + TCP + TLS + Vision —— 有自己域名时的直连正装

③ VLESS + WS + TLS(直连) —— 最经典的入门组合

{ "type": "vless", "listen_port": 443,
  "users": [{ "uuid": "<占位 UUID>" }],
  "transport": { "type": "ws", "path": "/assets" },
  "tls": { "enabled": true, "server_name": "node.example.com",
           "certificate_path": "/path/to/cert.pem", "key_path": "/path/to/key.pem" } }

④ VLESS + WS + TLS + CDN —— 抗封锁保险

⑤ VLESS + gRPC + TLS(可经 CDN)

⑥ VLESS + HTTP/2 + TLS

⑦ VLESS + XHTTP + TLS(可经 CDN)

⑧ VLESS + XHTTP + REALITY

⑨ VMess + WS + TLS + CDN —— 上一代经典(了解即可)

⑩ VMess + TCP(自带加密直连)

⑪ Trojan + TLS —— “我就是网站”

{ "type": "trojan", "listen_port": 443,
  "users": [{ "password": "<占位强密码>" }],
  "tls": { "enabled": true, "server_name": "www.example.com",
           "certificate_path": "/path/to/cert.pem", "key_path": "/path/to/key.pem" },
  "fallback": { "server": "127.0.0.1", "server_port": 8080 } }  // 回落到本机真网站

⑫ Trojan + WS + TLS(可经 CDN)

⑬ Shadowsocks 2022 直连 —— 轻量裸奔的正解

{ "type": "shadowsocks", "listen_port": 443,
  "method": "2022-blake3-aes-128-gcm",
  "password": "<服务端主密码(Base64 格式的密钥材料)>" }

⑭ Shadowsocks + v2ray-plugin(WS + TLS,可经 CDN)

⑮ Shadowsocks + ShadowTLS v3

⑯ Hysteria2 直连(+ 跳跃 / 混淆) —— 烂线路蛮力档

{ "type": "hysteria2", "listen_port": 443,
  "users": [{ "password": "<占位强密码>" }],
  "tls": { "enabled": true, "server_name": "node.example.com",
           "certificate_path": "/path/to/cert.pem", "key_path": "/path/to/key.pem" } }
// 客户端侧关键项:server_ports 写端口段做跳跃、bandwidth 按实测带宽填、obfs 选 salamander 并设口令

⑰ TUIC 直连 —— 守规矩的 QUIC 档

⑱ AnyTLS + TLS —— 新面孔观察档


7. 接入维度:同一个组合的四种活法

协议组合决定“流量长什么样”,接入方式决定“流量从哪进”。两者相乘,才是部署全貌。

7.1 直连

客户端直达源站 IP。延迟最低、结构最简;源站 IP 完全暴露,抗封锁全靠协议伪装本身。①②⑪⑬⑯⑰ 的默认活法。

7.2 CDN 前置

域名经 CDN 代理,边缘终结连接再回源。隐藏源站、借 IP 池续命;代价是延迟、抖动与一层故障点。只有 HTTP 系传输(WS/H2/gRPC/XHTTP)能进,且 TLS 在边缘被终结,所以 REALITY 与一切 UDP 协议出局。重要提醒:CDN 加速的是“烂回源链路被骨干网替代”的那部分,对线路本来就好的直连,它只会更慢——它是保险,不是提速器。

7.3 Tunnel 穿透

机器主动向外建一条隧道(如 Cloudflare Tunnel 的 cloudflared),访客经隧道域名进来,流量顺隧道落到本机服务。解决“没有公网 IP / 在 NAT 后面”的机器发节点的问题(如免费主机、家里内网机)。限制与 CDN 相同:入口只认 HTTP 系;连接多绕一段,延迟高于直连。

7.4 中转机转发

在一台线路好的机器上做端口转发(iptables / realm / gost 等),客户端连中转机,中转机把 TCP/UDP 原样转给落地机。协议层对此无感,所以任何组合都能套,包括 Hy2/TUIC 与 REALITY。代价是多一台机器的钱与一跳延迟,换来的是线路质量(如优质回程线路)的跃升——这是“真加速”的常见来源:加速的是路由,不是协议。

四种接入横向对比

接入 延迟 隐藏源站 抗封锁 协议限制 成本
直连 最低 ✗ 靠伪装 无 最低
CDN 前置 最高 ✓ 强(换 IP 续命) HTTP 系传输 低(有免费档)
Tunnel 高 ✓ 强 HTTP 系传输 低
中转转发 中 △ 暴露中转机 中(中转 IP 可换) 无 多一台机器

8. 选型决策线

按顺序问四个问题,答案自动收敛:

  1. 机器有公网 IP 吗? 没有 → HTTP 系组合 + Tunnel(③⑤⑦ 的 Tunnel 版)。
  2. 源站 IP 经常被封、或绝不能暴露吗? 是 → 经 CDN 的组合(④⑤⑦),接受它慢。
  3. 线路丢包/拥塞严重吗? 是 → Hysteria2(⑯),先把 Brutal 带宽按实测设准;线路尚可但想低延迟 → TUIC(⑰)。
  4. 以上都不是,只是要一条干净的直连 → 防探测选 ①(REALITY+Vision),有正规站点需求选 ② 或 ⑪,图轻量选 ⑬。

反模式清单(新手最常见的拼错)


附录 A:学习实验建议(在自己的机器上做)

  1. 同一台服务器上并排部署 ③ 与 ①,用同一客户端测延迟与吞吐,亲手感受“外衣的成本”。
  2. 给 ③ 的域名开/关 CDN 代理各测一次,把 7.2 的结论变成自己的数据。
  3. Hy2 把 Brutal 带宽分别填实测值的 50% / 100% / 200%,看吞吐与丢包怎么变——这是理解拥塞控制最快的一课。
  4. 用抓包工具看 WS 升级握手与 REALITY 握手的前几个包,对照第 2、3 章的描述找字段。

附录 B:名词速查


版本:学习整理稿。协议生态变化很快(尤其是 XHTTP、AnyTLS 这类新件),引用具体字段与支持情况时,请以你所用核心的官方文档为准。