代理协议架构与握手流程图解
代理协议架构与握手流程图解
用 Mermaid 图直观呈现《主流代理协议技术详解》中的部署拓扑与关键握手流程。 Obsidian 原生支持 Mermaid:在笔记中渲染以下代码块即可看到图(无需插件,部分旧版需开启 Settings → Editor → 启用 Mermaid)。
1. 四种部署拓扑
1.1 直连(最简单,源站 IP 暴露)
graph LR
C[客户端] --> S[代理服务端]
S --> T[目标站点]
1.2 中转 / 链式(入口抗封锁 + 内部高性能)
graph LR
C[客户端] --> E[入口节点<br/>Reality 强伪装]
E --> R[中转节点]
R --> X[出口节点<br/>Hysteria2/TUIC]
X --> T[目标站点]
1.3 CDN 前置(源站藏在边缘节点后)
graph LR
C[客户端] --> CDN[CDN 边缘节点]
CDN --> S[隐藏源站<br/>XHTTP/Trojan+CDN]
S --> T[目标站点]
1.4 链式 + TUN(系统级接管 + 规则分流)
graph LR
D[设备/全家流量] --> TU[TUN 系统级接管]
TU --> CO[核心<br/>路由/规则]
CO -->|海外| E[入口节点 Reality]
CO -->|国内| DI[DIRECT 直连]
E --> T[目标站点]
2. 关键握手流程
2.1 VLESS + Reality(抗主动探测核心)
sequenceDiagram
participant C as 客户端
participant S as Reality 服务端
participant D as dest 真实服务器
C->>S: TLS1.3 ClientHello<br/>(SNI=伪装域名, Random 嵌认证)
alt 认证通过
S->>C: 放行代理流量 (VLESS)
else 认证失败 (探测/非授权)
S->>D: 原样转发 ClientHello
D->>S: 真实 TLS 响应
S->>C: 转发 (像在访问真实站点)
end
要点:校验失败时不报错,而是把连接转发给真实目标——审查方看到的是合法会话。
2.2 NaiveProxy(极致伪装,流量=真实 Chrome)
sequenceDiagram
participant C as 客户端 (uTLS 模拟 Chrome)
participant Cd as Caddy 真实 Web 服务器
participant P as Naive 代理处理
C->>Cd: 标准 HTTPS 请求<br/>(Chrome 指纹/JA4 命中)
Cd->>P: 转发代理流量
P->>Cd: 响应
Cd->>C: 标准 HTTPS 响应
要点:服务端是真实 Caddy,代理流量混在真实 HTTPS 中,报文与真实 Chrome 无统计差异。
2.3 Hysteria2 / TUIC(QUIC 系,弱网优化)
graph LR
C[客户端] -->|QUIC UDP<br/>0-RTT/多路复用/拥塞控制| S[QUIC 服务端]
S --> T[目标站点]
style C fill:#eef,stroke:#88a
style S fill:#efe,stroke:#8a8
要点:基于 UDP/QUIC,内置拥塞控制(类 BBR)与连接迁移;速度快但 UDP 特征易被针对性限速。
3. 检测 vs 反制 映射(图)
graph TD
DET[检测手段] -->|字节/魔数| R1[AEAD 加密]
DET -->|包长/时序| R2[随机化/填充/分片]
DET -->|TLS 指纹 JA3/JA4| R3[uTLS 模拟真实客户端]
DET -->|主动探测| R4[优雅失败 转发真实目标]
DET -->|机器学习| R5[打破统计规律]
R1 --> PROTO[协议实现]
R2 --> PROTO
R3 --> PROTO
R4 --> PROTO
R5 --> PROTO
4. 客户端核心三选一(概览)
graph LR
subgraph 配置
J[JSON: Xray-core<br/>Reality 原生]
J2[JSON: sing-box<br/>协议最广/DNS强]
Y[YAML: mihomo<br/>规则组分流体验]
end
J --> OUT[统一逻辑:<br/>入站+出站+路由]
J2 --> OUT
Y --> OUT
相关笔记
本系列属于「代理协议与核心实现」知识簇: