传输方式有哪些?WebSocket、gRPC、HTTP/2 与 XHTTP 一次讲清
代理传输方式是节点里与协议分开的一层,决定数据怎样被包起来传输,常见的有 WebSocket、gRPC、HTTP/2、HTTPUpgrade 和 XHTTP。协议能搭配哪些传输方式,以内核文档里的兼容表为准。
节点里的 ws、grpc、xhttp,说的都是代理传输方式:它和协议是两层东西。协议管认证和转发,传输方式管数据怎样被包起来送出去。看懂这一层,你才明白节点链接里的 type=ws 或 network: grpc 在说什么,也才知道客户端缺了哪一项会连不上。下面依据官方文档,把 WebSocket、gRPC、HTTP/2、HTTPUpgrade、XHTTP 和 QUIC 一次讲清。
代理传输方式是什么:协议、传输与传输安全是三层
一条节点的配置,可以拆成三个相互独立的部分:
| 层次 | 负责什么 | 例子 | 节点里常见的写法 |
|---|---|---|---|
| 协议 | 认证与转发 | VMess、VLESS、Trojan | vmess://、vless://、trojan:// 开头 |
| 传输方式 | 数据怎样被包起来传输 | ws、grpc、h2、httpupgrade、xhttp | type=ws、network: grpc,常带 path、host、serviceName |
| 传输安全 | 外层的加密 | tls、reality | security=tls、security=reality |
字段名因客户端而异,不要照搬别人截图里的叫法。链接里的每一段怎么拆,见 节点链接怎么读。三层可以组合,但不是任意组合:Xray 的 协议与传输方式兼容表 就是在回答“哪几层能凑在一起”,后面会摘出其中最有用的部分。协议本身的资料见 VLESS 协议、VMess 协议 和 Reality 协议。
五种常见传输方式,逐个看官方文档怎么说
下面一种一小节,只写文档里写明的事实,顺序不代表优劣。
遇到 websocket 节点:ws 借 HTTP Upgrade 握手上路
WebSocket 是一个标准协议,RFC 6455 说明它先经过开场握手,之后是基础的消息帧,层叠在 TCP 之上。代理里的 ws 传输就是借这套标准来承载数据,所以常见的 websocket 节点会带 path 和 host 两类参数。词典里的 WebSocket 有简短解释。
按 Xray 文档:WebSocket,它是标准 WebSocket 传输,可以被 Nginx 等 HTTP 服务器按路径转发,也可以被 VLESS 的 fallbacks path 分流;V2Fly 的 WebSocket 页 也有同样的描述。兼容表里,vmess、vless、trojan 对它都是支持,shadowsocks 是“部分支持”,原因是没有启用 XUDP 时,UDP 会绕过传输层;Reality 则标为不支持。
Xray 文档同时建议改用 XHTTP,理由是 ALPN 为 http/1.1 的特征明显。注意这个建议是对搭建者说的。作为使用者,节点是什么传输,你就确认客户端支不支持,不要因为一条建议就去改节点。
grpc 传输:把数据放进 gRPC 调用,靠 HTTP/2 复用连接
grpc 传输的做法,是把代理数据放进 gRPC 调用里,底层是 HTTP/2,自带连接复用。gRPC 自身不是 IETF 标准,规范放在 grpc 仓库的 PROTOCOL-HTTP2.md 里,HTTP/2 本身见 RFC 9113。词典里的 gRPC 对术语有简短解释。
几处文档里写明的细节,决定了你在节点里会看到什么:
- 反向代理需要支持 HTTP/2,Xray 文档提到 Nginx、Caddy 都可以转发;V2Fly 文档给出的分流路径形如 /${serviceName}/Tun,所以节点里会出现 serviceName 这一栏。
- Xray 文档写明 gRPC 传输不支持指定 Host,也不支持回落,并提醒 gRPC 服务有被主动探测的风险,同样建议改用 XHTTP。
- sing-box 文档说,标准 gRPC 的兼容性好但性能较差,默认不编入,需要另行构建。这是文档的说法,不是梯子岛的测试结论。
- 兼容表里,vmess、vless、trojan 对它都是支持,Reality 也是支持。
HTTP/2 与 HTTPUpgrade:两种较少被单独提起的传输
这两种传输名气不大,但节点里仍可能出现。放在一起对照最清楚:
| 对比点 | HTTP/2(h2) | HTTPUpgrade |
|---|---|---|
| 做法 | 直接用 HTTP/2 承载代理数据 | 用 HTTP/1.1 的 Upgrade 请求与响应完成切换,之后直接传数据 |
| 官方文档怎么说 | V2Fly 文档:按 HTTP/2 的建议,两端需开 TLS;后来服务端不再强制,可由前置网关做 TLS,内部走明文 h2c | 官方文档的描述:不实现 WebSocket 的其余部分,同样可被 CDN 或 Nginx 反代,设计上建议配合 TLS |
| 当前的文档状态 | Xray 现行传输文档已不再把它列为独立方式,gRPC 与 XHTTP 仍基于 HTTP/2 | V2Fly 传输文档未列出 |
| Mihomo | vmess、vless 页含 h2,trojan 页只列 ws 与 grpc;h2 传输层未实现多路复用,需要复用时建议用 gRPC 或 sing-mux | 以 ws-opts 下的 v2ray-http-upgrade 选项启用,没有独立的 network 取值 |
| sing-box | V2Ray Transport 里的 HTTP 传输,未配置 TLS 时使用明文 HTTP 1.1 | V2Ray Transport 里有 HTTPUpgrade |
HTTPUpgrade 的升级机制来自 HTTP 语义规范,RFC 9110 的 7.8 节说明 Upgrade 头字段用于在同一连接上从 HTTP/1.1 切换到其他协议。文档形容它比 WebSocket 省掉了其余部分,因此效率更高;体感上有没有差别,梯子岛没有数据。Reality 与 HTTPUpgrade 的组合,兼容表标为不支持。
xhttp 是什么:由 SplitHTTP 演进而来的 Xray 传输
XHTTP 是 Xray 的 HTTP 传输层。官方长文 XHTTP: Beyond REALITY 讲了它的来历:前身 SplitHTTP 基于“分包上行、流式下行”的思路开发,后来实现了上下行分离,并更名为 XHTTP。Xray 文档站的 xhttp 页内容只是指向这篇长文,所以以长文为准。
按这篇长文和兼容表,能核对到的要点有:
- 三种模式:packet-up、stream-up、stream-one。每种模式适合什么场景,长文里逐一讲了,本文不转述细节,节点里的 mode 字段照提供方给的填。
- 上下行分离:上行和下行可以走不同的连接,长文称这是在更名为 XHTTP 的过程中实现的。
- 可跑在多种 HTTP 版本上:HTTP/1.1、h2、h3。服务端默认只监听 TCP 处理 H1 与 H2,客户端 alpn 只设 h3 时才用 QUIC 的 H3,HTTP/3 本身见 RFC 9114。
- 能搭配 Reality:兼容表中 xhttp 与 none、tls、reality 都是支持,vmess、vless、trojan 也都是支持。
- 其他内核:Mihomo 的 vless 页写明 network 支持 xhttp,传输页给出 xhttp-opts 和三种 mode,默认只支持 h2,要用 h3 需设 alpn: [h3];sing-box 与 V2Fly 的传输文档里没有列出 XHTTP。
“没有列出”不等于“不支持”,但也不能反过来假定它支持。拿到 xhttp 节点,先去查客户端用的内核。
QUIC 这个词,在这里有两个意思
节点和教程里的 QUIC 可能指两件事:
| 含义 | 资料怎么写 | 在哪里会遇到 |
|---|---|---|
| IETF 标准化的 QUIC | RFC 9000:带流控的流、低延迟建连、路径迁移,数据包承载于 UDP 数据报 | Hysteria2、TUIC 直接建立在它之上,见 Hysteria2 协议 与 TUIC 协议 |
| V2Ray 系内核里名为 QUIC 的传输选项 | V2Fly 的 QUIC 页:强制开启 TLS,使用时可关闭 VMess 的加密 | 旧教程和 V2Fly、sing-box 的传输列表 |
后者在 Xray 现行传输配置文档里没有独立列出,Mihomo 的 network 取值里也没有 quic;Xray 的 hysteria 传输与 XHTTP 的 h3 模式,则都用到了 QUIC。顺带一提,V2Fly 把它写作 Quick UDP Internet Connection,而 RFC 9000 明确说这个名称不是缩写。词典里的 QUIC 有简短解释。
代理传输方式怎么与协议搭配:兼容表和内核差别
先看 Xray 兼容表里摘出来的部分:
| 传输方式 | VMess、VLESS、Trojan | Shadowsocks | Reality |
|---|---|---|---|
| WebSocket | 支持 | 部分支持 | 不支持 |
| gRPC | 支持 | 资料待核实 | 支持 |
| HTTPUpgrade | 支持 | 资料待核实 | 不支持 |
| XHTTP | 支持 | 资料待核实 | 支持 |
再看各家文档对传输方式的收录情况。这张表只说“文档里有没有”,不说“好不好用”:
| 传输方式 | Xray | V2Fly | sing-box | Mihomo |
|---|---|---|---|---|
| WebSocket | 有 | 有 | 有 | 有 |
| gRPC | 有 | 有 | 有,标准 gRPC 默认不编入 | 有 |
| HTTP/2 | 不再单列 | 有 | 有,叫 HTTP | vmess、vless 有 |
| HTTPUpgrade | 有 | 未列出 | 有 | 以 ws-opts 选项启用 |
| XHTTP | 有 | 未列出 | 未列出 | vless 页有 |
| QUIC | 不单列 | 有 | 有 | 无此取值 |
某款客户端到底能不能用,要把“内核”和“客户端界面”两层都对上。内核的区别可以顺带读 Mihomo 与 Xray-core 对比,具体客户端的支持情况查 协议支持矩阵。
拿到节点后,怎么自己核对代理传输方式
- 打开节点详情或链接,写下三项:协议、传输方式、传输安全。比如“协议 VLESS,传输 grpc,安全 reality”。
- 对照上面的兼容表,看这三项能不能凑在一起。Reality 加 ws 这类组合,按 Xray 兼容表本来就不成立,应向提供方确认。
- 对照内核收录表,确认客户端所用的内核有这种传输。内核太旧的话,也可能认不出较新的传输。
- 核对子参数:path、host、serviceName、mode 这些,复制时别带多余的空格或换行。
- 手里有一串链接想拆开看,可以用 节点解析 这个工具,使用前先读工具页上的说明。
- 连上后,用 IP 与 DNS 检测 看出口和 DNS 走向。梯子岛只教方法,不提供检测结果。
- 仍然不通,按 梯子连不上怎么办 的顺序往下查。
下一步:按你手里的节点类型接着读
- 节点是 VLESS 加 Reality:读 Reality 协议是什么,那里讲了它对传输方式的限制。
- 节点是 VMess:读 VMess 协议,看它依赖系统时间的原因。
- 想确认客户端支不支持某种传输:查 协议支持矩阵,并翻 协议规范导航 里的官方文档入口。
- 不知道该优先弄懂哪种协议:读 代理协议怎么选。
记住这条分层的思路:先分清协议、传输方式和传输安全,再去查每一层的官方说明,就不会被一串缩写绕晕。
这篇没有覆盖的
- 各内核对传输方式的支持会随版本变化,本文只转述文档,字段名以当前官方文档为准。
- 没有任何一种传输方式的速度、稳定性或抗探测数据,梯子岛不给它们排优劣。
- 本文不教服务端、反向代理或 CDN 的配置,只讲客户端节点里这一栏怎么读。
本文引用的官方来源
- Xray 文档:传输配置与兼容表(xtls.github.io)
- XHTTP: Beyond REALITY(官方长文)(github.com)
- Xray 文档:WebSocket(xtls.github.io)
- Xray 文档:gRPC(xtls.github.io)
- sing-box 文档:V2Ray Transport(sing-box.sagernet.org)
- Mihomo 文档:传输配置(wiki.metacubex.one)
以上链接均为官方页面,梯子岛在 2026-10-09 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。
代理传输方式常见问题
节点链接里的 type=ws 是什么意思?
type=ws 表示这条节点的传输方式是 WebSocket。它和协议是两层东西:vmess、vless、trojan 这类协议负责认证与转发,ws 负责数据怎样被包起来传输。同理 type=grpc 表示传输方式是 gRPC。不同客户端对这个字段叫法不一,有的写成 network。
WebSocket 和 gRPC 传输有什么区别?
WebSocket 先用 HTTP Upgrade 握手,之后在同一条连接上收发消息帧。gRPC 把数据放进 gRPC 调用,底层是 HTTP/2,自带连接复用。两者都能被支持相应协议版本的反向代理转发,但字段、路径写法和内核支持范围不同,导入前要核对客户端文档。
XHTTP 是什么,所有客户端都支持吗?
XHTTP 是 Xray 的 HTTP 传输层,由 SplitHTTP 演进而来,有 packet-up、stream-up、stream-one 三种模式,可以跑在 HTTP/1.1、h2 和 h3 上。不是所有客户端都支持:sing-box 与 V2Fly 的传输文档未列出它,Mihomo 的 vless 页写明支持。拿到 xhttp 节点前先查内核。
Reality 节点可以用 WebSocket 传输吗?
按 Xray 兼容表,Reality 与 websocket、httpupgrade 都标为不支持,与 grpc、xhttp 则标为支持。所以一个节点既写 Reality 又写 ws,多半是配置有误或资料已经过期,应当向提供方确认,而不是自己随手改字段碰运气。
HTTP/2 传输和 gRPC 是一回事吗?
不是。HTTP/2 传输是直接用 HTTP/2 承载代理数据,V2Fly 文档里有专门的页面;gRPC 是把数据放进 gRPC 调用,底层同样用 HTTP/2。Xray 当前的传输配置文档已不再把 h2 列为独立传输方式,Mihomo 的 h2 传输层也未实现多路复用。
QUIC 传输和 Hysteria2 里的 QUIC 一样吗?
不完全一样。QUIC 是 IETF 标准化的 UDP 传输协议,Hysteria2 与 TUIC 直接建立在它之上。V2Ray 系内核里另有一个名为 QUIC 的传输选项,文档要求强制开启 TLS。看到节点写着 quic,先确认它指的是哪一种,再核对客户端支持。
接着读
- 协议 · VLESS 协议是什么?VLESS 节点与 Xray 的关系
- 协议 · VMess 协议是什么?VMess 节点与 V2Ray 的关系
- 协议 · Reality 协议是什么?VLESS + Reality 的原理与客户端
- 协议 · Trojan 协议是什么?Trojan 节点的原理与客户端支持
- 术语 · WebSocket是什么意思
- 术语 · gRPC是什么意思
- 术语 · QUIC是什么意思