Skip to content

Xray-core — структура конфигурации

Xray-core при запуске читает один JSON-документ. Корневой объект напрямую отображается на Go-структуру Config в infra/conf/xray.go:391. Каждое поле верхнего уровня в таблице ниже соответствует одному JSON-ключу.

Корневые ключи

КлючПоле GoТипСтраницаОписание
envEnvEnvConfig (map[string]string)Переменные окружения, применяемые через os.Setenv до сборки остальной конфигурации. При многофайловой конфигурации объединяются (более поздние файлы переопределяют одинаковые ключи).
logLogConfigLogConfigЖурналПотоки журналов доступа и ошибок, уровень, журналирование DNS-запросов, маскирование IP.
dnsDNSConfigDNSConfigDNSDNS-резолвер, список серверов, стратегия запросов, связка с FakeDNS.
routingRouterConfigRouterConfigМаршрутизацияСтратегия доменов, правила, балансировщики.
inboundsInboundConfigs[]InboundDetourConfigВходящиеСписок слушающих сервисов.
outboundsOutboundConfigs[]OutboundDetourConfigИсходящиеСписок целевых апстрим-прокси.
policyPolicyPolicyConfigПолитикаТайм-ауты по уровням, размер буфера, переключатели статистики пользователей и системы.
apiAPIAPIConfigAPIВходящий gRPC-API управления (tag + listen + список сервисов).
statsStatsStatsConfigСтатистикаПустая структура; само её наличие включает подсистему статистики.
metricsMetricsMetricsConfigМетрикиЭкспортёр Prometheus (tag + listen).
reverseReverseReverseConfigРеверсМосты (bridge) и порталы (portal) реверс-прокси.
fakeDnsFakeDNSFakeDNSConfigFakeDNSКонфигурация пула fake-IP (один объект или массив).
observatoryObservatoryObservatoryConfigObservatoryИзмерение задержек исходящих.
burstObservatoryBurstObservatoryBurstObservatoryConfigBurst ObservatoryПараллельное измерение задержек с настройкой проверок работоспособности.
versionVersionVersionConfigВерсияНеобязательное требование к версии min/max.
transportTransportmap[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)

Core Tutorial от Argsment