ちか 7d80639f6f
补充一些内容和修正 (#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.md
2024-01-07 14:19:56 -05:00

116 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API 接口
API 接口配置提供了一些基于 [gRPC](https://grpc.io/)的 API 接口供远程调用。
可以通过 api 配置模块开启接口. 当 api 配置开启时Xray 会自建一个出站代理,须手动将所有的 API 入站连接通过 [路由规则配置](./routing.md) 指向这一出站代理。
请参考本节中的 [相关配置](#相关配置)
::: warning
大多数用户并不会用到此 API新手可以直接忽略这一项。
:::
## ApiObject
`ApiObject` 对应配置文件的 `api` 项。
```json
{
"api": {
"tag": "api",
"services": ["HandlerService", "LoggerService", "StatsService"]
}
}
```
> `tag`: string
出站代理标识。
> `services`: \[string\]
开启的 API 列表,可选的值见 [API 列表](#支持的-api-列表)。
## 相关配置
可以在 inbounds 配置中增加一个 api 的 inbound
```json
"inbounds": [
{
"listen": "127.0.0.1",
"port": 10085,
"protocol": "dokodemo-door",
"settings": {
"address": "127.0.0.1"
},
"tag": "api"
}
]
```
在路由配置中增加针对 api inbound 的路由规则
```json
"routing": {
"rules": [
{
"inboundTag": [
"api"
],
"outboundTag": "api",
"type": "field"
}
]
}
```
在基础配置中增加 api
```json
"api": {
"tag": "api",
"services": [
"StatsService"
]
}
```
## 支持的 API 列表
### HandlerService
一些对于入站出站代理进行修改的 API可用的功能如下
- 添加一个新的入站代理;
- 添加一个新的出站代理;
- 删除一个现有的入站代理;
- 删除一个现有的出站代理;
- 在一个入站代理中添加一个用户(仅支持 VMess、VLESS、Trojan、Shadowsocksv1.3.0+
- 在一个入站代理中删除一个用户(仅支持 VMess、VLESS、Trojan、Shadowsocksv1.3.0+
### LoggerService
支持对内置 Logger 的重启,可配合 logrotate 进行一些对日志文件的操作。
### StatsService
内置的数据统计服务,详见 [统计信息](./stats.md)。
### ReflectionService
支持 gRPC 客户端获取服务端的 API 列表。
```bash
$ grpcurl -plaintext localhost:10085 list
grpc.reflection.v1alpha.ServerReflection
v2ray.core.app.proxyman.command.HandlerService
v2ray.core.app.stats.command.StatsService
xray.app.proxyman.command.HandlerService
xray.app.stats.command.StatsService
```
## API 调用示例
[Xray-API-documents](https://github.com/XTLS/Xray-API-documents) @crossfw