Xray-core — структура конфигурации
Xray-core при запуске читает один JSON-документ. Корневой объект напрямую отображается на Go-структуру Config в infra/conf/xray.go:391. Каждое поле верхнего уровня в таблице ниже соответствует одному JSON-ключу.
Корневые ключи
| Ключ | Поле Go | Тип | Страница | Описание |
|---|---|---|---|---|
env | Env | EnvConfig (map[string]string) | — | Переменные окружения, применяемые через os.Setenv до сборки остальной конфигурации. При многофайловой конфигурации объединяются (более поздние файлы переопределяют одинаковые ключи). |
log | LogConfig | LogConfig | Журнал | Потоки журналов доступа и ошибок, уровень, журналирование DNS-запросов, маскирование IP. |
dns | DNSConfig | DNSConfig | DNS | DNS-резолвер, список серверов, стратегия запросов, связка с FakeDNS. |
routing | RouterConfig | RouterConfig | Маршрутизация | Стратегия доменов, правила, балансировщики. |
inbounds | InboundConfigs | []InboundDetourConfig | Входящие | Список слушающих сервисов. |
outbounds | OutboundConfigs | []OutboundDetourConfig | Исходящие | Список целевых апстрим-прокси. |
policy | Policy | PolicyConfig | Политика | Тайм-ауты по уровням, размер буфера, переключатели статистики пользователей и системы. |
api | API | APIConfig | API | Входящий gRPC-API управления (tag + listen + список сервисов). |
stats | Stats | StatsConfig | Статистика | Пустая структура; само её наличие включает подсистему статистики. |
metrics | Metrics | MetricsConfig | Метрики | Экспортёр Prometheus (tag + listen). |
reverse | Reverse | ReverseConfig | Реверс | Мосты (bridge) и порталы (portal) реверс-прокси. |
fakeDns | FakeDNS | FakeDNSConfig | FakeDNS | Конфигурация пула fake-IP (один объект или массив). |
observatory | Observatory | ObservatoryConfig | Observatory | Измерение задержек исходящих. |
burstObservatory | BurstObservatory | BurstObservatoryConfig | Burst Observatory | Параллельное измерение задержек с настройкой проверок работоспособности. |
version | Version | VersionConfig | Версия | Необязательное требование к версии min/max. |
transport | Transport | map[string]json.RawMessage | Устарело | Сохранён только для вывода понятной ошибки, если ключ встречается в старой конфигурации. |
Общий вид
json
{
"log": { "loglevel": "warning" },
"dns": {},
"routing": { "rules": [] },
"inbounds": [],
"outbounds": [],
"policy": { "levels": { "0": { "handshake": 4 } } },
"api": { "tag": "api", "listen": "127.0.0.1:10085", "services": ["HandlerService", "StatsService"] },
"stats": {},
"metrics": { "tag": "metrics", "listen": "127.0.0.1:9099" }
}Исходный код: infra/conf/xray.go:391-412 · v26.7.28 (5ca6f4b)
