translate /config/api.md
parent
3e384d0b07
commit
f6899aaddc
|
@ -0,0 +1,144 @@
|
|||
# API
|
||||
|
||||
Настройка API предоставляет API-интерфейсы на основе [gRPC](https://grpc.io/) для удаленного вызова.
|
||||
|
||||
Интерфейсы можно включить с помощью модуля конфигурации api. Когда API включен, Xray создает исходящее подключение с тем же тегом, что и тег API.
|
||||
Необходимо вручную направить все входящие API-подключения на это исходящее подключение с помощью [правил маршрутизации](./routing.md).
|
||||
См. раздел [Связанные настройки](#связанные-настройки) в этом документе.
|
||||
|
||||
Начиная с версии [v1.8.12](https://github.com/XTLS/Xray-core/releases/tag/v1.8.12) поддерживается упрощенный режим настройки, в котором достаточно указать только ApiObject, без необходимости настройки inbounds и routing.
|
||||
Однако при использовании упрощенной настройки статистика трафика не учитывает трафик входящих API-подключений.
|
||||
|
||||
::: warning
|
||||
Большинству пользователей не нужен этот API, новички могут просто пропустить этот раздел.
|
||||
:::
|
||||
|
||||
## ApiObject
|
||||
|
||||
`ApiObject` соответствует полю `api` в конфигурационном файле.
|
||||
|
||||
```json
|
||||
{
|
||||
"api": {
|
||||
"tag": "api",
|
||||
"listen": "127.0.0.1:8080",
|
||||
"services": ["HandlerService", "LoggerService", "StatsService", "RoutingService"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> `tag`: string
|
||||
|
||||
Тег исходящего подключения.
|
||||
|
||||
> `listen`: string
|
||||
|
||||
IP-адрес и порт, на котором прослушивает API-сервер. Это необязательный параметр.
|
||||
|
||||
Если этот параметр опущен, необходимо добавить настройки inbounds и routing, как показано в примере в разделе [Связанные настройки](#связанные-настройки).
|
||||
|
||||
> `services`: \[string\]
|
||||
|
||||
Список включенных API.
|
||||
Доступные значения см. в разделе [Список API](#список-поддерживаемых-api).
|
||||
|
||||
## Связанные настройки
|
||||
|
||||
Можно добавить входящее подключение api в раздел inbounds:
|
||||
|
||||
```json
|
||||
"inbounds": [
|
||||
{
|
||||
"listen": "127.0.0.1",
|
||||
"port": 10085,
|
||||
"protocol": "dokodemo-door",
|
||||
"settings": {
|
||||
"address": "127.0.0.1"
|
||||
},
|
||||
"tag": "api"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Добавить правило маршрутизации для входящего подключения api в раздел routing:
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"inboundTag": [
|
||||
"api"
|
||||
],
|
||||
"outboundTag": "api",
|
||||
"type": "field"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Добавить api в основные настройки:
|
||||
|
||||
```json
|
||||
"api": {
|
||||
"tag": "api",
|
||||
"services": [
|
||||
"StatsService"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Список поддерживаемых API
|
||||
|
||||
### HandlerService
|
||||
|
||||
API для изменения входящих и исходящих подключений.
|
||||
Доступны следующие функции:
|
||||
|
||||
- Добавление нового входящего подключения;
|
||||
- Добавление нового исходящего подключения;
|
||||
- Удаление существующего входящего подключения;
|
||||
- Удаление существующего исходящего подключения;
|
||||
- Добавление пользователя к входящему подключению (поддерживается только для VMess, VLESS, Trojan, Shadowsocks (v1.3.0+));
|
||||
- Удаление пользователя из входящего подключения (поддерживается только для VMess, VLESS, Trojan, Shadowsocks (v1.3.0+));
|
||||
|
||||
### RoutingService
|
||||
|
||||
API для добавления, удаления, замены правил маршрутизации и запроса статистики балансировщика.
|
||||
Доступны следующие функции:
|
||||
|
||||
- adrules - добавление или замена правил маршрутизации;
|
||||
- rmrules - удаление правил маршрутизации;
|
||||
- sib - разрыв соединений с указанного IP-адреса;
|
||||
- bi - запрос статистики балансировщика;
|
||||
- bo - принудительное переключение балансировщика на указанный outboundTag.
|
||||
|
||||
Конкретное использование можно узнать с помощью команды `./xray help api bi`.
|
||||
|
||||
### LoggerService
|
||||
|
||||
Поддержка перезапуска встроенного логгера.
|
||||
Можно использовать совместно с 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
|
||||
|
||||
|
Loading…
Reference in New Issue