mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-01-20 17:51:40 +03:00
3b23ce3ea2
* add Russian lang support --------- Co-authored-by: 风扇滑翔翼 <Fangliding.fshxy@outlook.com>
145 lines
5.7 KiB
Markdown
145 lines
5.7 KiB
Markdown
# 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
|
||
|
||
|