gRPC是什么意思?
一句话结论
gRPC 是基于 HTTP/2 的远程调用框架,代理工具把它当成传输方式,让数据以多路复用的流在一条连接里来回。
在节点配置里它与 ws、tcp 并列,是传输方式一栏的选项,需要填写服务名称。它依赖 HTTP/2,因此常搭配 TLS 使用,两端的服务名称必须完全一致才能连通。
“grpc”这个词在节点配置里往往只占一格,但它背后是一整套以 HTTP/2 为底座的约定。
它是什么
gRPC 本来是应用程序之间互相调用函数的框架,消息放在 HTTP/2 的流里发送,具体约定见 官方仓库的 HTTP/2 说明。代理软件借用了它的“帧”:把代理数据装进 gRPC 的消息里,通过一条 HTTP/2 连接来回传。
HTTP/2 的特点之一,是同一条连接里可以并行跑多条流,所以它天然和 多路复用 的思路相近,但这两个概念不是一回事,别混用。
在哪里会看到它
- 节点链接或配置里的传输写作
grpc。 - 需要填一个服务名称(serviceName 或类似字段);不同内核的字段名略有差异,查官方文档:Xray 的 gRPC 说明。
- 在 VLESS 节点里较常被提到,协议介绍见 VLESS 协议。
常见误解
- “grpc 比 ws 快。” 没有稳定的结论可以直接这样说。两者的差别需要在你自己的网络里验证,梯子岛不给跑分。
- “服务名称可以随便填。” 不行,它必须与服务端一致,错一个字符都连不上。
- “grpc 不用 TLS 也行。” 是否支持、是否推荐,以节点方的说明和内核文档为准。常见部署会搭配 TLS。
怎么判断自己是否会遇到问题
手动添加节点时,把“传输”选成 grpc,再核对服务名称与是否启用 TLS,这是最容易出错的两处。导入订阅则基本不会自己填。对比不同传输的取舍,读 传输方式有哪些;和 WebSocket 的区别,在于底层是 HTTP/2 的流,还是升级后的长连接。