Xray-docs-next/docs/config/transports/grpc.md

44 lines
1.5 KiB
Markdown
Raw Normal View History

2021-03-16 15:57:15 +00:00
# gRPC
2021-03-15 15:59:11 +00:00
基于 gRPC 的传输方式。
2021-03-16 15:57:15 +00:00
它基于 HTTP/2 协议,理论上可以通过其它支持 HTTP/2 的服务器(如 Nginx进行中转。
gRPCHTTP/2内置多路复用不建议使用 gRPC 与 HTTP/2 时启用 mux.cool。
2021-03-17 04:42:25 +00:00
目前gRPC不支持指定 serverName。请在出站代理地址中填写 **正确的域名** 否则无法连接。
2021-03-16 15:57:15 +00:00
::: tip
2021-03-17 06:11:09 +00:00
如果您使用 Caddy 或 Nginx 等反向代理,请注意下列事项:
- 请确定反向代理服务器开启了 HTTP/2
- 请使用 HTTP/2 或 h2c (Caddy)grpc_pass (Nginx) 连接到 Xray。
- 普通模式的 Path 为 `/{serviceName}/Tun`, Multi 模式为 `/{serviceName}/TunMulti`
2021-03-16 15:57:15 +00:00
:::
::: warning
⚠️ 如果你正在使用回落,请注意下列事项:
- 请确认 (x)tlsSettings.alpn 中包含 h2否则 gRPCHTTP/2无法完成 TLS 握手。
- gRPC 无法通过进行 Path 分流,建议使用 SNI 分流。
:::
2021-03-15 15:59:11 +00:00
2021-03-16 15:57:15 +00:00
## GRPCObject
2021-03-15 15:59:11 +00:00
`GRPCObject` 对应传输配置的 `grpcSettings` 项。
```json
{
2021-03-16 15:57:15 +00:00
"serviceName": "name",
"multiMode": false
2021-03-15 15:59:11 +00:00
}
```
> `serviceName`: string
2021-03-17 06:11:09 +00:00
一个字符串,指定服务路径,**类似于** HTTP/2 与 WebSocket 中的 Path。
2021-03-15 15:59:11 +00:00
客户端会使用此名称进行通信,服务器会验证服务名称是否匹配。
2021-03-16 15:57:15 +00:00
> `multiMode`: bool <Badge text="BETA" type="warning"/>
一个布尔值。表示是否启用 `multiMode`
2021-03-17 04:42:25 +00:00
这是一个 **实验性** 选项,可能不会被长期保留,也不保证跨版本兼容。此模式在 **测试环境中** 能够带来约 20% 的性能提升,实际效果因传输速率不同而不同。