补充一些内容和修正 (#447)
* Update routing.md * Update vmess.md * Update README.md * Create metrics.md * Update inbound.md * Update wireguard.md * Update freedom.md * Update api.md * Update routing.md * Update grpc.md * Update grpc.md * Update transport.md 补充 tcpWindowClamp 参数,参数介绍是谷歌搜索的。 * Update transport.mdpull/448/head
parent
d95dbe2da4
commit
7d80639f6f
|
@ -22,7 +22,8 @@ Xray 的配置文件为 json 格式, 客户端和服务端的配置格式没有
|
|||
"transport": {},
|
||||
"stats": {},
|
||||
"reverse": {},
|
||||
"fakedns": {}
|
||||
"fakedns": {},
|
||||
"metrics": {}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -75,3 +76,7 @@ Xray 的配置文件为 json 格式, 客户端和服务端的配置格式没有
|
|||
> fakedns: [FakeDnsObject](./fakedns.md)
|
||||
|
||||
FakeDNS 配置。可配合透明代理使用,以获取实际域名。
|
||||
|
||||
> metrics: [metricsObject](./metrics.md)
|
||||
|
||||
metrics 配置。更直接(希望更好)的统计导出方式。
|
||||
|
|
|
@ -65,6 +65,17 @@ API 接口配置提供了一些基于 [gRPC](https://grpc.io/)的 API 接口供
|
|||
}
|
||||
```
|
||||
|
||||
在基础配置中增加 api
|
||||
|
||||
```json
|
||||
"api": {
|
||||
"tag": "api",
|
||||
"services": [
|
||||
"StatsService"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 支持的 API 列表
|
||||
|
||||
### HandlerService
|
||||
|
|
|
@ -111,11 +111,11 @@
|
|||
|
||||
其中 `["fakedns+others"]` 相当于 `["http", "tls", "quic", "fakedns"]`,当 IP 地址处于 FakeIP 区间内但没有命中域名记录时会使用 `http`、`tls` 和 `quic` 进行匹配。此项仅在 `metadataOnly` 为 `false` 时有效。
|
||||
|
||||
::: tip 1
|
||||
::: tip
|
||||
Xray只会嗅探 `destOverride` 中协议的域名用作路由,如果只想进行嗅探用作路由而不想重置目标地址,请在这里添加对应的协议并启用 `routeOnly` 。
|
||||
:::
|
||||
|
||||
::: tip 2
|
||||
::: tip
|
||||
当使用 Tor 浏览器,设置使用代理访问互联网(HTTP / SOCKS),地址为本地 IP 127.0.0.1,需要关闭 `"sniffing"` 才能正常使用。
|
||||
:::
|
||||
|
||||
|
|
|
@ -0,0 +1,275 @@
|
|||
# metrics
|
||||
|
||||
更直接(希望更好)的统计导出方式。
|
||||
|
||||
## 相关配置
|
||||
|
||||
可以在 inbounds 配置中增加一个 metrics 的 inbound
|
||||
|
||||
```json
|
||||
"inbounds": [
|
||||
{
|
||||
"listen": "127.0.0.1",
|
||||
"port": 11111,
|
||||
"protocol": "dokodemo-door",
|
||||
"settings": {
|
||||
"address": "127.0.0.1"
|
||||
},
|
||||
"tag": "metrics_in"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
在路由配置中增加针对 metrics inbound 的路由规则
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"type": "field",
|
||||
"inboundTag": [
|
||||
"metrics_in"
|
||||
],
|
||||
"outboundTag": "metrics_out"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
在基础配置中增加 metrics
|
||||
|
||||
```json
|
||||
"metrics": {
|
||||
"tag": "metrics_out"
|
||||
}
|
||||
```
|
||||
|
||||
## 使用方法
|
||||
|
||||
### pprof
|
||||
|
||||
Access `http://127.0.0.1:11111/debug/pprof/` or use go tool pprof to start profiling or inspect running goroutines.
|
||||
|
||||
### expvars
|
||||
|
||||
Access `http://127.0.0.1:11111/debug/vars`
|
||||
|
||||
Variables exported include:
|
||||
* `stats` includes statistics about inbounds, outbounds and users
|
||||
* `observatory` includes observatory results
|
||||
|
||||
for example with [luci-app-xray](https://github.com/yichya/luci-app-xray) you are likely to get a result like this (standard expvar things like `cmdline` and `memstats` are omitted)
|
||||
|
||||
<details><summary>点击查看</summary><br>
|
||||
|
||||
```json
|
||||
{
|
||||
"observatory": {
|
||||
"tcp_outbound": {
|
||||
"alive": true,
|
||||
"delay": 782,
|
||||
"outbound_tag": "tcp_outbound",
|
||||
"last_seen_time": 1648477189,
|
||||
"last_try_time": 1648477189
|
||||
},
|
||||
"udp_outbound": {
|
||||
"alive": true,
|
||||
"delay": 779,
|
||||
"outbound_tag": "udp_outbound",
|
||||
"last_seen_time": 1648477191,
|
||||
"last_try_time": 1648477191
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"inbound": {
|
||||
"api": {
|
||||
"downlink": 0,
|
||||
"uplink": 0
|
||||
},
|
||||
"dns_server_inbound_5300": {
|
||||
"downlink": 14286,
|
||||
"uplink": 5857
|
||||
},
|
||||
"http_inbound": {
|
||||
"downlink": 74460,
|
||||
"uplink": 10231
|
||||
},
|
||||
"https_inbound": {
|
||||
"downlink": 0,
|
||||
"uplink": 0
|
||||
},
|
||||
"metrics": {
|
||||
"downlink": 6327,
|
||||
"uplink": 1347
|
||||
},
|
||||
"socks_inbound": {
|
||||
"downlink": 19925615,
|
||||
"uplink": 5512
|
||||
},
|
||||
"tproxy_tcp_inbound": {
|
||||
"downlink": 4739161,
|
||||
"uplink": 1568869
|
||||
},
|
||||
"tproxy_udp_inbound": {
|
||||
"downlink": 0,
|
||||
"uplink": 2608142
|
||||
}
|
||||
},
|
||||
"outbound": {
|
||||
"blackhole_outbound": {
|
||||
"downlink": 0,
|
||||
"uplink": 0
|
||||
},
|
||||
"direct": {
|
||||
"downlink": 97714548,
|
||||
"uplink": 3234617
|
||||
},
|
||||
"dns_server_outbound": {
|
||||
"downlink": 7116,
|
||||
"uplink": 2229
|
||||
},
|
||||
"manual_tproxy_outbound_tcp_1": {
|
||||
"downlink": 0,
|
||||
"uplink": 0
|
||||
},
|
||||
"manual_tproxy_outbound_udp_1": {
|
||||
"downlink": 0,
|
||||
"uplink": 0
|
||||
},
|
||||
"tcp_outbound": {
|
||||
"downlink": 23873238,
|
||||
"uplink": 1049595
|
||||
},
|
||||
"udp_outbound": {
|
||||
"downlink": 639282,
|
||||
"uplink": 74634
|
||||
}
|
||||
},
|
||||
"user": {}
|
||||
}
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
To get a better view of these numbers, [Netdata](https://github.com/netdata/netdata) (with python.d plugin) is a great option:
|
||||
|
||||
1. Edit related configuration file (`sudo /etc/netdata/edit-config python.d/go_expvar.conf`)
|
||||
2. Take the following configuration file as an example:
|
||||
|
||||
<details><summary>点击查看</summary><br>
|
||||
|
||||
```
|
||||
xray:
|
||||
name: 'xray'
|
||||
update_every: 2
|
||||
url: 'http://127.0.0.1:11111/debug/vars'
|
||||
collect_memstats: false
|
||||
extra_charts:
|
||||
- id: 'inbounds'
|
||||
options:
|
||||
name: 'inbounds'
|
||||
title: 'Xray System Inbounds'
|
||||
units: bytes
|
||||
family: xray
|
||||
context: xray.inbounds
|
||||
chart_type: line
|
||||
lines:
|
||||
- expvar_key: stats.inbound.tproxy_tcp_inbound.downlink
|
||||
id: 'tcp.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.tproxy_udp_inbound.downlink
|
||||
id: 'udp.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.http_inbound.downlink
|
||||
id: 'http.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.https_inbound.downlink
|
||||
id: 'https.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.socks_inbound.downlink
|
||||
id: 'socks.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.tproxy_tcp_inbound.uplink
|
||||
id: 'tcp.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.tproxy_udp_inbound.uplink
|
||||
id: 'udp.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.http_inbound.uplink
|
||||
id: 'http.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.https_inbound.uplink
|
||||
id: 'https.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.inbound.socks_inbound.uplink
|
||||
id: 'socks.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- id: 'outbounds'
|
||||
options:
|
||||
name: 'outbounds'
|
||||
title: 'Xray System Outbounds'
|
||||
units: bytes
|
||||
family: xray
|
||||
context: xray.outbounds
|
||||
chart_type: line
|
||||
lines:
|
||||
- expvar_key: stats.outbound.tcp_outbound.downlink
|
||||
id: 'tcp.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.outbound.udp_outbound.downlink
|
||||
id: 'udp.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.outbound.direct.downlink
|
||||
id: 'direct.downlink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.outbound.tcp_outbound.uplink
|
||||
id: 'tcp.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.outbound.udp_outbound.uplink
|
||||
id: 'udp.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- expvar_key: stats.outbound.direct.uplink
|
||||
id: 'direct.uplink'
|
||||
algorithm: incremental
|
||||
expvar_type: int
|
||||
- id: 'observatory'
|
||||
options:
|
||||
name: 'observatory'
|
||||
title: 'Xray Observatory Metrics'
|
||||
units: milliseconds
|
||||
family: xray
|
||||
context: xray.observatory
|
||||
chart_type: line
|
||||
lines:
|
||||
- expvar_key: observatory.tcp_outbound.delay
|
||||
id: tcp
|
||||
expvar_type: int
|
||||
- expvar_key: observatory.udp_outbound.delay
|
||||
id: udp
|
||||
expvar_type: int
|
||||
```
|
||||
</details>
|
||||
|
||||
And you will get a nice plot like this:
|
||||
|
||||
![160428235-2988bf69-5d6c-41ec-8267-1bd512508aa8](https://github.com/chika0801/Xray-docs-next/assets/88967758/455e88ce-ced2-4593-a9fa-425bb293215b)
|
||||
|
||||
### Additional
|
||||
Maybe reusing the empty object `stats` in config file is better than adding `metrics` here?
|
||||
|
||||
**Edit:** removed prometheus related things and added usage about expvars
|
|
@ -30,60 +30,9 @@ Xray-core v1.8.6 新增功能:<br>
|
|||
当目标地址为域名时,配置相应的值,Freedom 的行为模式如下:
|
||||
|
||||
- `"AsIs"`:Freedom 使用系统 DNS 同时查询 A 和 AAAA 记录获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级由系统控制。
|
||||
|
||||
| | AsIs |
|
||||
| :--- | :---: |
|
||||
| 系统有 IPv4 IPv6 | 通常 IPv6 优先 |
|
||||
| 系统只有 IPv4 | IPv4 |
|
||||
| 系统只有 IPv6 | IPv6 |
|
||||
|
||||
- `"UseIP"`、`"UseIPv6v4"`、`"UseIPv6"`、`"UseIPv4v6"`、`"UseIPv4"`:使用 Xray-core [内置 DNS 服务器](../dns.md) 查询获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级详见下方表格。
|
||||
|
||||
| 系统有 IPv4 IPv6 | UseIP | UseIPv6v4 | UseIPv6 | UseIPv4v6 | UseIPv4 |
|
||||
| :--- | :---: | :---: | :---: | :---: | :---: |
|
||||
| `"queryStrategy": "UseIP"` | **1** | **2** | IPv6 | **3** | IPv4 |
|
||||
| `"queryStrategy": "UseIPv4"` | IPv4 | **4** | **5** | **6** | IPv4 |
|
||||
| `"queryStrategy": "UseIPv6"` | IPv6 | **7** | IPv6 | **8** | **9** |
|
||||
|
||||
**1:** IPv4 IPv6 地址,随机优先<br>
|
||||
**2:** IPv4 IPv6 地址,IPv6 优先<br>
|
||||
**3:** IPv4 IPv6 地址,IPv4 优先<br>
|
||||
**4:** IPv4 IPv6 地址,IPv6 优先,IPv6 地址由系统 DNS 查询<br>
|
||||
**5:** IPv6 地址,IPv6 地址由系统 DNS 查询<br>
|
||||
**6:** IPv4 IPv6 地址,IPv4 优先,IPv6 地址由系统 DNS 查询<br>
|
||||
**7:** IPv4 IPv6 地址,IPv6 优先,IPv4 地址由系统 DNS 查询<br>
|
||||
**8:** IPv4 IPv6 地址,IPv4 优先,IPv4 地址由系统 DNS 查询<br>
|
||||
**9:** IPv4 地址,IPv4 地址由系统 DNS 查询
|
||||
|
||||
- `"ForceIP"`、`"ForceIPv6v4"`、`"ForceIPv6"`、`"ForceIPv4v6"`、`"ForceIPv4"`:使用 Xray-core [内置 DNS 服务器](../dns.md) 查询获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级详见下方表格。
|
||||
|
||||
| 系统有 IPv4 IPv6 | ForceIP | ForceIPv6v4 | ForceIPv6 | ForceIPv4v6 | ForceIPv4 |
|
||||
| :--- | :---: | :---: | :---: | :---: | :---: |
|
||||
| `"queryStrategy": "UseIP"` | **1** | **2** | IPv6 | **3** | IPv4 |
|
||||
| `"queryStrategy": "UseIPv4"` | IPv4 | IPv4 | 冲突 | IPv4 | IPv4 |
|
||||
| `"queryStrategy": "UseIPv6"` | IPv6 | IPv6 | IPv6 | IPv6 | 冲突 |
|
||||
|
||||
**1:** IPv4 IPv6 地址,随机优先<br>
|
||||
**2:** IPv4 IPv6 地址,IPv6 优先<br>
|
||||
**3:** IPv4 IPv6 地址,IPv4 优先
|
||||
|
||||
- 当使用 `"UseIP"` 系列值 或 `"ForceIP"` 系列值时,若没写 `"dns"` 配置,使用系统 DNS 同时查询 A 和 AAAA 记录获取 IP,向此域名发出连接。IPv4 或 IPv6 优先级详见下方表格。
|
||||
|
||||
| | UseIP | UseIPv6v4 | UseIPv6 | UseIPv4v6 | UseIPv4 |
|
||||
| :--- | :---: | :---: | :---: | :---: | :---: |
|
||||
| 系统有 IPv4 IPv6 | **1** | **2** | IPv6 | **3** | IPv4 |
|
||||
| 系统只有 IPv4 | IPv4 | 冲突 | 冲突 | IPv4 | IPv4 |
|
||||
| 系统只有 IPv6 | IPv6 | IPv6 | IPv6 | 冲突 | 冲突 |
|
||||
|
||||
| | ForceIP | ForceIPv6v4 | ForceIPv6 | ForceIPv4v6 | ForceIPv4 |
|
||||
| :--- | :---: | :---: | :---: | :---: | :---: |
|
||||
| 系统有 IPv4 IPv6 | **1** | **2** | IPv6 | **3** | IPv4 |
|
||||
| 系统只有 IPv4 | IPv4 | 冲突 | 冲突 | IPv4 | IPv4 |
|
||||
| 系统只有 IPv6 | IPv6 | IPv6 | IPv6 | 冲突 | 冲突 |
|
||||
|
||||
**1:** IPv4 IPv6 地址,随机优先<br>
|
||||
**2:** IPv4 IPv6 地址,IPv6 优先<br>
|
||||
**3:** IPv4 IPv6 地址,IPv4 优先
|
||||
- `"UseIP"`、`"UseIPv6v4"`、`"UseIPv6"`、`"UseIPv4v6"`、`"UseIPv4"`:使用 Xray-core [内置 DNS 服务器](../dns.md) 查询获取 IP,向此域名发出连接。
|
||||
- `"ForceIP"`、`"ForceIPv6v4"`、`"ForceIPv6"`、`"ForceIPv4v6"`、`"ForceIPv4"`:使用 Xray-core [内置 DNS 服务器](../dns.md) 查询获取 IP,向此域名发出连接。
|
||||
- 当使用 `"UseIP"` 系列值 或 `"ForceIP"` 系列值时,若没写 `"dns"` 配置,使用系统 DNS 同时查询 A 和 AAAA 记录获取 IP,向此域名发出连接。
|
||||
|
||||
::: tip TIP 1
|
||||
当使用 `"UseIP"`、`"ForceIP"` 模式时,并且 [出站连接配置](../outbound.md#outboundobject) 中指定了 `sendThrough` 时,Freedom 会根据 `sendThrough` 的值自动判断所需的 IP 类型,IPv4 或 IPv6。
|
||||
|
|
|
@ -18,7 +18,8 @@ VMess 依赖于系统时间,请确保使用 Xray 的系统 UTC 时间误差在
|
|||
{
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
||||
"security": "auto",
|
||||
"level": 0
|
||||
"level": 0,
|
||||
"experiments": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -62,7 +63,8 @@ VMess 依赖于系统时间,请确保使用 Xray 的系统 UTC 时间误差在
|
|||
{
|
||||
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
||||
"security": "auto",
|
||||
"level": 0
|
||||
"level": 0,
|
||||
"experiments": ""
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -108,3 +110,12 @@ level 的值, 对应 [policy](../policy.md#policyobject) 中 `level` 的值。
|
|||
|
||||
无论使用哪种加密方式, VMess 的包头都会受到加密和认证的保护。
|
||||
:::
|
||||
|
||||
> `experiments`: string
|
||||
|
||||
启用的 VMess 协议实验性功能。(此处的功能为不稳定功能, 可能随时被移除)多个启用的实验之间可以用 | 字符分割,如 "AuthenticatedLength|NoTerminationSignal" 。
|
||||
|
||||
"AuthenticatedLength" 启用认证的数据包长度实验。此实验需要同时在客户端与服务器端同时开启,并运行相同版本的程序。
|
||||
|
||||
"NoTerminationSignal" 启用不发送断开连接标致实验。此实验可能会影响被代理的连接的稳定性。
|
||||
|
||||
|
|
|
@ -86,17 +86,6 @@ Xray-core v1.8.6 新增参数。<br>
|
|||
若不写此参数,或留空,默认值 `"ForceIP"`。<br>
|
||||
当目标地址为域名时,使用 Xray-core [内置 DNS 服务器](../dns.md)查询获取 IP(若没写 `"dns"` 配置,使用系统 DNS),将此 IP 通过 wireguard 发出连接。<br>
|
||||
|
||||
| domainStrategy | test-ipv6.com | bgp.he.net | chat.openai.com |
|
||||
| :--- | :---: | :---: | :---: |
|
||||
| ForceIPv6v4 | IPv6v4地址 | IPv6地址 | IPv6地址 |
|
||||
| ForceIPv6 | 网站打不开 | IPv6地址 | IPv6地址 |
|
||||
| ForceIPv4v6 | IPv6v4地址 **1** | IPv4地址 | IPv4地址 |
|
||||
| ForceIPv4 | IPv4地址 | IPv4地址 | IPv4地址 |
|
||||
| ForceIP | IPv6v4地址 **2** | IPv6地址 | IPv6地址 |
|
||||
|
||||
**1:** 提示`你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。`<br>
|
||||
**2:** 有机率提示`你已经有 IPv6 地址了,但你的浏览器不太愿意用,这一点比较令人担心。`
|
||||
|
||||
::: tip
|
||||
若 `domainStrategy` 的值与 `"dns"` 配置中 `"queryStrategy"` 的值产生冲突,会造成网站打开失败。
|
||||
:::
|
||||
|
|
|
@ -113,6 +113,7 @@
|
|||
- [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing):形如 `"10.0.0.0/8"`。
|
||||
- 预定义 IP 列表:此列表预置于每一个 Xray 的安装包中,文件名为 `geoip.dat`。使用方式形如 `"geoip:cn"`,必须以 `geoip:`(小写)开头,后面跟双字符国家代码,支持几乎所有可以上网的国家。
|
||||
- 特殊值:`"geoip:private"`,包含所有私有地址,如 `127.0.0.1`。
|
||||
- 反选(!)功能,`"geoip:!cn"` 表示非 geoip:cn 中的结果。
|
||||
- 从文件中加载 IP:形如 `"ext:file:tag"`,必须以 `ext:`(小写)开头,后面跟文件名和标签,文件存放在 [资源目录](./features/env.md#资源文件路径) 中,文件格式与 `geoip.dat` 相同标签必须在文件中存在。
|
||||
|
||||
> `port`:number | string
|
||||
|
|
|
@ -88,6 +88,7 @@
|
|||
"tcpcongestion": "bbr",
|
||||
"interface": "wg0",
|
||||
"V6Only": false,
|
||||
"tcpWindowClamp": 600
|
||||
"tcpMptcp": false,
|
||||
"tcpNoDelay": false
|
||||
}
|
||||
|
@ -511,6 +512,7 @@ OCSP 装订更新,与证书热重载的时间间隔。 单位:秒。默认
|
|||
"tcpcongestion": "bbr",
|
||||
"interface": "wg0",
|
||||
"V6Only": false,
|
||||
"tcpWindowClamp": 600
|
||||
"tcpMptcp": false,
|
||||
"tcpNoDelay": false
|
||||
}
|
||||
|
@ -686,6 +688,10 @@ iOS / Mac OS 需要 Xray-core v1.8.6 或更高版本。
|
|||
|
||||
填写 `true` 时,监听 `::` 地址仅接受 IPv6 连接。仅支持 Linux。
|
||||
|
||||
> `tcpWindowClamp`: number
|
||||
|
||||
绑定通告的 windows 大小为该值。内核会在它与 SOCK_MIN_RCVBUF/2 之间选一个最大值。
|
||||
|
||||
> `tcpMptcp`: true | false
|
||||
|
||||
Xray-core v1.8.6 新增参数。<br>
|
||||
|
|
|
@ -50,6 +50,11 @@ gRPC(HTTP/2)内置多路复用,不建议使用 gRPC 与 HTTP/2 时启用 m
|
|||
一个字符串,指定服务名称,**类似于** HTTP/2 中的 Path。
|
||||
客户端会使用此名称进行通信,服务端会验证服务名称是否匹配。
|
||||
|
||||
::: tip
|
||||
当 `serviceName` 起始为斜杠时可以自定义 path。<br>
|
||||
例如在服务端填写 `"serviceName": "/my/sample/path1|path2"`,客户端可填写 `"serviceName": "/my/sample/path1"` 或 `"/my/sample/path2"`。
|
||||
:::
|
||||
|
||||
> `user_agent`: string
|
||||
|
||||
::: tip
|
||||
|
|
Loading…
Reference in New Issue