Files
XTLS_Xray-docs-next/docs/ru/config/env.md
T
yiguodevandyiguo 63d932f42f Env: Add new env configuration (#874)
* Document root env configuration

* Format env documentation

* Align config module spacing

* Document Docker env config file

* Move env docs to basic config

* Add env to basic config sidebar

* Clarify root env behavior

* Refine environment variable documentation

---------

Co-authored-by: yiguo <yiguo@example.com>
2026-07-10 13:05:06 +08:00

6.0 KiB

Конфигурация среды

Xray может настраивать среду выполнения через корневой объект env или переменные окружения процесса.

env в файле конфигурации

В корне файла конфигурации можно указать объект env:

{
  "env": {
    "XRAY_LOCATION_ASSET": "/usr/local/share/xray",
    "XRAY_LOCATION_CERT": "/usr/local/share/xray",
    "XRAY_RAY_BUFFER_SIZE": "0"
  }
}

Каждый ключ и значение из env записываются без изменений в окружение текущего процесса, при этом все значения должны быть строками. Ключи не ограничены переменными, определёнными Xray. Можно также задавать переменные Go и других зависимостей, но они влияют только на код, который читает их после применения env.

Момент применения

  • Xray сначала читает и объединяет все файлы конфигурации, а затем применяет корневой объект env.
  • XRAY_LOCATION_ASSET, XRAY_LOCATION_CERT и параметры времени выполнения, читаемые при создании экземпляра Xray, могут задаваться через корневой env.
  • Переменные, необходимые для поиска или разбора текущей конфигурации, должны быть установлены до запуска Xray. XRAY_LOCATION_CONFIG, XRAY_LOCATION_CONFDIR и XRAY_JSON_STRICT в корневом env не влияют на текущую загрузку конфигурации.
  • При объединении нескольких файлов одинаковый ключ из более позднего файла переопределяет предыдущее значение.
  • Пустая строка задаёт переменной окружения пустое значение, но не удаляет её.
  • Корневой env изменяет окружение всего процесса. Изоляция между экземплярами отсутствует, а прежние значения не восстанавливаются автоматически при ошибке построения конфигурации или остановке экземпляра.

Переменные этапа загрузки конфигурации

Следующие три переменные должны быть заданы в окружении процесса до чтения конфигурации Xray. Их нельзя задать через корневой объект env текущей конфигурации.

Расположение файла конфигурации

  • Имя: XRAY_LOCATION_CONFIG.
  • Значение по умолчанию: каталог исполняемого файла Xray.

Эта переменная задаёт каталог, содержащий config.json.

Каталог нескольких конфигураций

  • Имя: XRAY_LOCATION_CONFDIR.
  • Значение по умолчанию: "".

Файлы .json из этого каталога читаются в порядке их имён. Аргумент командной строки confdir имеет более высокий приоритет.

Строгий JSON-парсер

  • Имя: XRAY_JSON_STRICT.
  • Значение по умолчанию: false.

По умолчанию Xray использует собственный JSON-парсер, удаляющий комментарии и другие нестандартные символы. Если конфигурация строго соответствует JSON (RFC 8259), этот параметр включает стандартный парсер и может ускорить обработку очень больших файлов конфигурации.

Переменные путей ресурсов

Следующие две переменные можно задать через окружение процесса или корневой объект env.

Путь к файлам ресурсов

  • Имя: XRAY_LOCATION_ASSET.
  • Значение по умолчанию: определённые каталоги FHS или каталог исполняемого файла Xray.

Эта переменная задаёт каталог ресурсов, обычно содержащий geoip.dat и geosite.dat. Если она не задана, Xray ищет файлы в следующем порядке:

./
/usr/local/share/xray
/usr/share/xray

Путь к файлам сертификатов

  • Имя: XRAY_LOCATION_CERT.
  • Значение по умолчанию: каталог исполняемого файла Xray.

Эта переменная задаёт базовый каталог для относительных путей к файлам сертификатов.

Другие переменные среды выполнения

Следующие переменные также можно задать через окружение процесса или корневой объект env:

  • XRAY_BUF_READV
  • XRAY_BUF_SPLICE
  • XRAY_VMESS_PADDING
  • XRAY_CONE_DISABLED
  • XRAY_RAY_BUFFER_SIZE
  • XRAY_BROWSER_DIALER
  • XRAY_XUDP_SHOW
  • XRAY_XUDP_BASEKEY
  • XRAY_TUN_FD

Эти параметры предназначены для пользователей с особыми требованиями. Их точное поведение описано в исходном коде.