NEWS
科学上网代理协议工作原理汇总
2026-09-27 22:50
“科学上网/代理”技术理解成 5 层
你的程序/浏览器
↓
本地入口
SOCKS5 / HTTP / TUN
↓
代理协议
VLESS / VMess / Trojan / Shadowsocks / TUIC / Hysteria2
↓
传输方式
RAW(TCP) / WebSocket / gRPC / XHTTP / QUIC
↓
安全与伪装
TLS / REALITY / XTLS Vision / Obfs
↓
Internet
↓
境外代理服务器
↓
Google / YouTube / GitHub / ChatGPT...Xray 官方现在也明确把 代理协议、传输方式、传输安全 分开定义。例如 VLESS 属于代理协议,RAW/XHTTP/gRPC/WebSocket 属于传输方式,而 TLS/REALITY 属于传输安全。(XTLS)
一、代理到底是怎么工作的
假设你访问:
https://www.google.com没有代理时:
你的电脑
↓
运营商网络
↓
Google使用代理后变成:
你的电脑
↓
代理客户端
↓
【加密/封装后的连接】
↓
代理服务器
↓
Google例如:
Chrome
↓
127.0.0.1:1080 SOCKS5
↓
VLESS
↓
REALITY
↓
TCP 443
↓
VPS
↓
Google中间网络真正看到的主要是:
你的 IP
↕
VPS IP而不是你和 Google 直接通信。
这里有一个非常重要的概念:
“加密”≠“抗封锁”。
加密主要解决:
你传了什么?伪装/抗探测解决:
你到底在运行什么协议?所以即使某个协议内容完全加密,只要它的数据包形态非常独特,DPI 依然可能判断:
“虽然我不知道里面是什么,但我知道这是某种代理协议。”
二、目前常见协议整体对比
下面这个表更接近实际使用时应该如何理解。
技术 | 底层 | 核心思路 | 性能 | 丢包网络 | 被动 DPI 隐蔽性 | 主动探测抵抗 | 最大弱点 |
|---|---|---|---|---|---|---|---|
SOCKS5 | TCP | 普通代理转发 | ★★★★★ | ★★★ | ★ | ★ | 本身基本不负责伪装/加密 |
HTTP Proxy | TCP | HTTP CONNECT | ★★★★★ | ★★★ | ★ | ★ | 容易识别 |
Shadowsocks 2022 | TCP/UDP | AEAD 加密代理 | ★★★★★ | ★★★ | ★★★ | ★★★ | 随机流量本身可能成为特征 |
VMess | TCP 等 | V2Ray 加密认证 | ★★★★ | ★★★ | ★★★ | ★★★ | 架构较旧、复杂 |
Trojan | TLS/TCP | 把代理藏在 HTTPS 中 | ★★★★ | ★★★ | ★★★★ | ★★★★ | 依赖 TLS 外观 |
VLESS+TLS | TCP | 极简协议+TLS | ★★★★★ | ★★★ | ★★★★ | ★★★★ | 配置方式影响很大 |
VLESS+REALITY+Vision | TCP | 模拟正常 TLS + 低开销转发 | ★★★★★ | ★★★★ | ★★★★★ | ★★★★★ | IP 被直接封仍然没办法 |
NaiveProxy | H2/H3 | 使用 Chromium 网络栈模仿 Chrome | ★★★★ | ★★★★ | ★★★★★ | ★★★★★ | 资源/部署成本较高 |
Hysteria2 | QUIC/UDP | QUIC + 激进拥塞控制 | ★★★★★ | ★★★★★ | ★★★★ | ★★★★ | UDP/QUIC 被限制时影响巨大 |
TUIC | QUIC/UDP | QUIC 多路复用 | ★★★★★ | ★★★★★ | ★★★ | ★★★ | UDP 特征明显 |
WireGuard | UDP | 高性能 VPN | ★★★★★ | ★★★★ | ★★ | ★★ | 协议特征比较固定 |
OpenVPN | UDP/TCP | TLS VPN | ★★★ | ★★★ | ★★ | ★★ | 开销大且容易分类 |
这里的星级只能表示一般网络环境下的相对特点,不能理解为“★★★★★ 就永远不会封”。真正影响结果的还有 IP、ASN、端口、流量大小、TLS 指纹、客户端实现、网络运营商以及是否限制 UDP。
三、Shadowsocks:简单、高速的经典方案
Shadowsocks 本质上是:
应用数据
↓
Shadowsocks
↓
AEAD 加密
↓
TCP / UDP
↓
服务器SS 2022 使用预共享密钥以及 AEAD,加密后数据在外观上接近随机字节流,同时增加了完整的重放保护,并重新设计了 UDP 会话机制。(Shadowsocks)
优点
非常轻。
没有复杂 TLS/WebSocket/gRPC 套娃:
SS
↓
TCPCPU 消耗低、吞吐高、客户端支持广。
问题
它的哲学是:
我让你看不懂而不是:
我让你觉得我是正常 Chrome HTTPS。因此:
Trojan / Reality / Naive
↓
“看起来像普通互联网应用”
Shadowsocks
↓
“看起来像一段加密随机数据”这两种设计思路完全不同。
四、VMess:V2Ray 时代的经典协议
VMess 是 V2Ray 早期最核心的协议之一。
典型架构:
VMess
+
WebSocket
+
TLS例如:
VMess
↓
WebSocket
↓
TLS
↓
443过去非常常见。
但 Xray 后来发展出了:
VLESS
XTLS
REALITY
XHTTP所以如果你现在研究 Xray/s-ui,理解 VMess 就可以,但更应该重点理解 VLESS。
一个重要区别是 VLESS 本身是无状态轻量协议,而且不像 VMess 那样依赖系统时间。(XTLS)
五、VLESS:现在 Xray 体系里最值得理解的协议
VLESS 可以理解成:
“尽量什么都不做的代理协议。”
核心目标是:
认证
+
告诉服务器我要访问哪里
+
转发数据而不是自己承担所有加密工作。
因此经典 VLESS:
VLESS
↓
TLS / REALITY
↓
TCPXray 官方也明确提醒:普通 VLESS 如果没有启用 VLESS Encryption,不应该直接裸跑在不可信网络上,而应配合 TLS/REALITY 等安全层。(XTLS)
六、REALITY 到底是什么
这个尤其重要。
很多人会说:
REALITY 是协议。
其实不准确。
它更接近:
传输安全/伪装层所以:
VLESS + REALITY实际上是两个东西。
可以理解成:
VLESS
负责代理
REALITY
负责让外层 TLS 行为更接近正常互联网连接Xray 官方描述 REALITY 为一种修改后的 TLS,通过借用目标网站的 TLS 外观和握手特征进行伪装,使外部观察到的流量更接近正常 Web 流量。(XTLS)
因此:
VLESS
↓
XTLS Vision
↓
REALITY
↓
RAW/TCP是目前 Xray 体系非常典型的一种架构。
七、XTLS Vision 又是什么
这个也不是独立代理协议。
可以理解为:
VLESS 数据应该怎么高效地流动。
普通代理:
TLS数据
↓
Xray 用户态
↓
复制
↓
处理
↓
复制
↓
socket符合条件时,XTLS Vision 可以利用 Linux splice() 等机制减少数据在用户态中的复制和处理。
也就是说:
VLESS = 身份/代理协议
REALITY = 外层安全和伪装
Vision = 数据转发优化所以:
VLESS + REALITY + Vision并不是“三个代理协议叠起来”。
而是三层功能。Xray 文档也说明了 Vision 与 TCP+TLS/REALITY 搭配时可以减少核心 IO 开销。(XTLS)
八、Trojan:直接装成 HTTPS
Trojan 的思想非常容易理解:
既然 HTTPS 是互联网最常见流量
那我为什么不直接像 HTTPS?所以:
Trojan
↓
真正的 TLS
↓
TCP 443客户端首先完成正常 TLS 握手,然后在 TLS 内发送 Trojan 身份认证和代理请求。(Trojan GFW)
如果是正确客户端:
TLS
↓
Trojan认证成功
↓
代理如果有人探测:
TLS
↓
认证失败
↓
正常网站/回落服务这就是它抗主动探测的设计思想。
相比 Shadowsocks:
SS:
“不让你看懂”
Trojan:
“让你以为我是 HTTPS”九、NaiveProxy:直接模仿 Chrome
NaiveProxy 的思路更进一步。
不是:
做一个“类似 HTTPS”的协议而是尽量直接使用:
Chromium 网络栈因此网络侧看到的 TLS/H2/H3 行为会更接近 Chrome。
架构类似:
应用
↓
Naive Client
↓
HTTP/2 或 HTTP/3 CONNECT
↓
TLS
↓
Caddy / 前端
↓
Naive ServerNaiveProxy 官方明确说明它利用 Chromium 网络栈来降低 TLS 参数指纹、流量分类和主动探测带来的可识别性,并使用 padding 等方式降低长度特征。(GitHub)
它的设计哲学可以概括成:
不要自己发明一种“像浏览器”的流量
直接尽可能使用浏览器本身的网络行为所以在流量真实性方面很有特色。
十、Hysteria2:另一条完全不同的路线
前面的:
VLESS
Trojan
Naive大部分重点是:
TCP / HTTPSHysteria2 则主要走:
UDP
↓
QUIC
↓
Hysteria2QUIC 本身支持多路复用:
一个 QUIC Connection
├─ TCP连接A
├─ TCP连接B
├─ TCP连接C
└─ UDP数据不会像传统 TCP 那样所有流都互相严重影响。
Hysteria2 官方协议建立在标准 QUIC 上,并支持 TCP 和 UDP 代理。(Hysteria 2)
它特别适合:
高延迟
高丢包
跨国链路
移动网络
Wi-Fi质量差它的 Brutal 等拥塞控制思想偏向:
即使存在丢包,也积极尝试利用可用带宽。
所以很多情况下测速非常猛。
十一、Hysteria2 的伪装
HY2 默认会表现得类似 HTTP/3 服务。
没有正确身份认证时,可以像正常 HTTP/3 Web Server 一样处理连接。(Hysteria 2)
另外目前还有:
Salamander
Gecko两种混淆。
Salamander:
QUIC
↓
混淆
↓
随机外观 UDPGecko 更进一步:
QUIC握手
↓
随机拆分
↓
随机 Padding
↓
UDP官方文档称 Gecko 会对 QUIC 握手报文进行随机大小的分片和填充。(Hysteria 2)
但 HY2 最大弱点也非常明显:
依赖 UDP如果网络策略直接:
UDP 443 → 限速
QUIC → 限制
未知 UDP → 丢包性能甚至连可用性都会明显下降。
sing-box 文档也特别提醒:UDP 型代理虽然可能在某些环境很有效,但从流量类型来看,特征未必比 TCP 方案更不明显。(Sing Box)
十二、TUIC 和 Hysteria2 为什么经常放一起
因为两者都大量使用:
QUIC
UDP
TLS
多路复用TUIC:
应用
↓
TUIC
↓
QUIC
↓
UDPTUIC 协议本身设计为运行在可复用的 TLS 加密流之上,并主要为 QUIC 设计。(GitHub)
它还能使用:
CUBIC
New Reno
BBR等 QUIC 拥塞控制策略。(Sing Box)
可以粗略理解:
TUIC
更像:
“QUIC 高性能代理”
Hysteria2
更像:
“QUIC 高性能代理
+
弱网优化
+
HTTP/3伪装
+
专门的混淆机制”所以两者性能都很好,但 HY2 的抗审查设计更明显。
十三、WireGuard 为什么速度很快但不是抗封锁第一选择
WireGuard 本质是:
VPN而不是传统意义的应用代理。
它:
IP Packet
↓
WireGuard
↓
UDP把整个 IP 数据包封装进去。
WireGuard 使用 Noise IK 握手、Curve25519、ChaCha20-Poly1305 等密码学机制,并且所有包走 UDP。(WireGuard)
它最大的优势:
代码简单
速度快
延迟低
稳定
系统级 VPN 很方便但它设计重点是:
安全 VPN而不是:
伪装成普通 HTTPS所以在“协议识别”这一层,它和:
REALITY
Naive
Trojan的设计目标是不一样的。
十四、WebSocket、gRPC、XHTTP 又是什么
这几个最容易和 VLESS 混淆。
例如:
VLESS + WS + TLS这里:
VLESS
= 代理协议
WS
= 传输
TLS
= 加密同理:
VLESS + gRPC + TLS
VLESS + XHTTP + REALITY
Trojan + gRPC + TLS都是组合。
Xray 当前官方支持的主要传输包括:
RAW
XHTTP
mKCP
gRPC
WebSocket
HTTPUpgrade
Hysteria而传输安全层主要包括 TLS 和 REALITY。(XTLS)
十五、RAW 为什么现在又经常看到
以前很多面板叫:
TCP现在 Xray 文档里改名叫:
RAW实际上意思接近:
不再额外套 WebSocket/gRPC/XHTTP,直接把代理协议产生的数据交给底层 TCP/UDP。
例如:
VLESS
↓
REALITY
↓
RAW
↓
TCP相比:
VLESS
↓
WebSocket
↓
TLS
↓
TCP少了一层。
所以:
RAW
优点:
低开销
低延迟
配置简单
性能好Xray 官方也明确说明 RAW 就是直接发送经代理协议包装后的 TCP/UDP 数据,而不使用 XHTTP 等额外传输。(XTLS)
十六、真正应该怎么理解“抗封锁”
不要简单问:
哪个协议最抗封?
应该拆成 5 个问题。
① IP 封锁
例如:
1.2.3.4
直接被封那么:
VLESS ❌
Reality ❌
Trojan ❌
Hysteria ❌
TUIC ❌
WireGuard ❌协议再强也救不了这个 IP。
这是:
IP层的问题。
② 被动 DPI
防火墙只是观察:
包大小
方向
时间
TLS ClientHello
协议结构
UDP/TCP特征不主动连接服务器。
这个场景通常:
REALITY
Naive
Trojan这类“正常互联网协议外观”设计更有优势。
③ 主动探测
例如发现:
某 IP:443 很可疑于是主动连过去:
你好,你是不是代理服务器?好的设计不会回答:
“是。”而应该表现成:
普通网站
普通 HTTPS 服务
或者没有有效响应Trojan 的 fallback、REALITY 的设计、Naive 的前端以及 HY2 的 HTTP/3 masquerade,都在解决类似问题。Trojan 原始协议就明确设计了认证失败后转交正常服务的机制。(Trojan GFW)
④ 流量统计
这是更高级的一层。
即使内容和握手完全隐藏:
你每天晚上
20:00 → 某IP
持续 4 小时
稳定 30Mbps
双向长连接也可能被统计模型识别为异常。
因此现代方案开始使用:
Padding
Multiplexing
Fragmentation
真实 TLS 指纹
HTTP 行为减少统计特征。
NaiveProxy 就专门针对 TLS 指纹和长度特征做了这类处理。(GitHub)
⑤ UDP/QUIC 限制
这是:
HY2
TUIC
WireGuard特别需要关注的问题。
如果网络环境 UDP 很好:
HY2 / TUIC
往往体验非常优秀如果 UDP 被严重 QoS:
TCP Reality
可能反而稳定得多十七、所以现在可以把整个技术路线分成三派
第一派是:
加密派
Shadowsocks
VMess
WireGuard核心:
让数据无法读取。
第二派是:
HTTPS伪装派
Trojan
NaiveProxy
VLESS + TLS
VLESS + REALITY核心:
不仅不能让你看懂,而且尽量让你觉得这是正常互联网流量。
第三派:
QUIC高速派
Hysteria2
TUIC核心:
重点解决跨国、高延迟、丢包情况下的吞吐和延迟,同时再做一定程度的伪装。
十八、如果对应到你刚才看的 s-ui,可以这样记
最容易记住的是这一棵树:
代理技术
│
┌──────────────┼───────────────┐
│ │ │
代理协议 传输层 安全层
│ │ │
VLESS RAW TLS
VMess WS REALITY
Trojan gRPC
SS XHTTP
QUIC
│
└────── 流控 / 优化
│
Vision
Mux
Padding所以看到:
VLESS
RAW
REALITY
XTLS Vision正确翻译不是:
“用了四种协议。”
而是:
代理协议:VLESS
传输:RAW
安全/伪装:REALITY
流控:XTLS Vision这也是为什么你前面 s-ui 页面里会出现很多看起来像“协议”的选项,其实它们处在完全不同的层。
如果只看目前这些技术的设计目标和综合特征,可以大致把它们记成:
VLESS + REALITY + Vision
→ TCP 路线,低开销 + 强伪装 + 高性能
NaiveProxy
→ 最强调“像真正浏览器”
Hysteria2
→ UDP/QUIC 路线,弱网和高延迟性能突出
TUIC
→ QUIC 高性能代理
Trojan
→ 经典 HTTPS 伪装路线
Shadowsocks 2022
→ 极简、高效、经典加密代理
WireGuard
→ 高性能 VPN,而非专门的伪装协议其中最需要记住的一句话是:不存在单纯意义上的“最抗封协议”——IP 封锁、DPI、主动探测、流量统计和 UDP 限制是五种不同的问题,而不同协议解决的是其中不同部分。 (XTLS)
如果你接下来继续研究 s-ui,下一步最有价值的是把它页面里的 VLESS / Trojan / Shadowsocks / Hysteria2 → RAW / XHTTP / gRPC / WS → TLS / REALITY → Vision 每个选项逐个对应起来,我可以直接按照你上一张 s-ui 截图的菜单结构给你画成一张“协议选择树”。
自由的飞翔