Files
XTLS_Xray-docs-next/docs/ru/config/env.md
T

7.8 KiB

Переменные окружения

Переменные окружения используются для изменения некоторых низкоуровневых настроек Xray.

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

::: tip Имена переменных Встроенные переменные Xray поддерживают как имена в нижнем регистре с точками, так и имена в верхнем регистре с символами подчёркивания, например xray.location.asset и XRAY_LOCATION_ASSET. Если существуют обе формы, приоритет имеет форма с точками.
Далее на этой странице используется форма с точками; при настройке через командную оболочку или диспетчер служб для лучшей совместимости рекомендуется форма в верхнем регистре с символами подчёркивания. :::

EnvObject

EnvObject соответствует разделу env в файле конфигурации и представляет собой набор имён и значений переменных окружения.

{
  "env": {
    "xray.location.asset": "/usr/local/share/xray",
    "xray.buf.readv": "true",
    "xray.ray.buffer.size": "2"
    // ...
  }
}

имя переменной окружения: string

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

::: tip При использовании нескольких файлов конфигурации их разделы env объединяются по ключам. Одинаковый ключ из более позднего файла заменяет предыдущее значение.

Раздел env задаёт имя именно в записанном виде и заменяет существующую переменную процесса с точно таким же именем. :::

::: warning Раздел env применяется только после того, как файлы конфигурации были найдены, прочитаны и объединены. Поэтому, чтобы следующие три параметра повлияли на текущий запуск, их необходимо передать через окружение процесса до запуска Xray. Если записать их в раздел env файла конфигурации, они не повлияют на поиск или разбор этого файла:

  • xray.json.strict
  • xray.location.config
  • xray.location.confdir

:::

Настройка переменных окружения процесса

В следующих примерах задаются путь к файлам ресурсов и строгий анализатор JSON:

::: code-group

# Задать переменные в текущей оболочке и запущенных из неё процессах
export XRAY_LOCATION_ASSET=/usr/local/share/xray
export XRAY_JSON_STRICT=true

# Либо задать их только для одного запуска Xray, разделяя пробелами
XRAY_LOCATION_ASSET=/usr/local/share/xray XRAY_JSON_STRICT=true xray run
# Задать переменные в текущем сеансе PowerShell и запущенных из него процессах
$env:XRAY_LOCATION_ASSET = "C:\Xray"
$env:XRAY_JSON_STRICT = "true"
:: Задать переменные в текущем сеансе CMD и запущенных из него процессах
set "XRAY_LOCATION_ASSET=C:\Xray"
set "XRAY_JSON_STRICT=true"
# Задать переменные в разделе [Service] службы Xray
[Service]
Environment="XRAY_LOCATION_ASSET=/usr/local/share/xray"
Environment="XRAY_JSON_STRICT=true"

:::

Встроенные переменные Xray

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

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

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

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

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

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

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

Запись в разделе env файла конфигурации не действует, поскольку Xray находит файл конфигурации до чтения этого раздела.

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

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

Файлы .json из этого каталога читаются в порядке имён как несколько файлов конфигурации.

Запись в разделе env файла конфигурации не действует, поскольку Xray находит каталог конфигурации до чтения этого раздела.

Этот параметр имеет более низкий приоритет, чем аргумент запуска confdir.

Строгий синтаксический анализатор JSON

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

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

Запись в разделе env файла конфигурации не действует, поскольку Xray должен выбрать анализатор JSON до чтения этого раздела.

Другие доступные переменные

  • xray.location.cert
  • 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

Эти параметры предназначены для специализированных сценариев. Их точное назначение можно узнать из исходного кода.