mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-10-14 01:59:09 +03:00
https://github.com/XTLS/Xray-core/pull/6400 Co-authored-by: yiguodev <147401898+yiguodev@users.noreply.github.com>
140 lines
7.8 KiB
Markdown
140 lines
7.8 KiB
Markdown
# Переменные окружения
|
|
|
|
Переменные окружения используются для изменения некоторых низкоуровневых настроек Xray.
|
|
|
|
Их можно задать как в разделе `env` файла конфигурации, так и традиционным способом через окружение процесса перед запуском Xray.
|
|
|
|
::: tip Имена переменных
|
|
Встроенные переменные Xray поддерживают как имена в нижнем регистре с точками, так и имена в верхнем регистре с символами подчёркивания, например `xray.location.asset` и `XRAY_LOCATION_ASSET`. Если существуют обе формы, приоритет имеет форма с точками.<br>Далее на этой странице используется форма с точками; при настройке через командную оболочку или диспетчер служб для лучшей совместимости рекомендуется форма в верхнем регистре с символами подчёркивания.
|
|
:::
|
|
|
|
## EnvObject
|
|
|
|
`EnvObject` соответствует разделу `env` в файле конфигурации и представляет собой набор имён и значений переменных окружения.
|
|
|
|
```json
|
|
{
|
|
"env": {
|
|
"xray.location.asset": "/usr/local/share/xray",
|
|
"xray.buf.readv": "true",
|
|
"xray.ray.buffer.size": "2"
|
|
// ...
|
|
}
|
|
}
|
|
```
|
|
|
|
> `имя переменной окружения`: string
|
|
|
|
Имя и значение каждой переменной окружения должны быть строками. После чтения и объединения всех файлов конфигурации Xray записывает элементы `env` в окружение текущего процесса перед созданием модулей.
|
|
|
|
::: tip
|
|
При использовании [нескольких файлов конфигурации](./features/multiple.md) их разделы `env` объединяются по ключам. Одинаковый ключ из более позднего файла заменяет предыдущее значение.
|
|
|
|
Раздел `env` задаёт имя именно в записанном виде и заменяет существующую переменную процесса с точно таким же именем.
|
|
:::
|
|
|
|
::: warning
|
|
Раздел `env` применяется только после того, как файлы конфигурации были найдены, прочитаны и объединены. Поэтому, чтобы следующие три параметра повлияли на текущий запуск, их необходимо передать через окружение процесса до запуска Xray. Если записать их в раздел `env` файла конфигурации, они не повлияют на поиск или разбор этого файла:
|
|
|
|
- `xray.json.strict`
|
|
- `xray.location.config`
|
|
- `xray.location.confdir`
|
|
|
|
:::
|
|
|
|
## Настройка переменных окружения процесса
|
|
|
|
В следующих примерах задаются путь к файлам ресурсов и строгий анализатор JSON:
|
|
|
|
::: code-group
|
|
|
|
```bash [Shell]
|
|
# Задать переменные в текущей оболочке и запущенных из неё процессах
|
|
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 [PowerShell]
|
|
# Задать переменные в текущем сеансе PowerShell и запущенных из него процессах
|
|
$env:XRAY_LOCATION_ASSET = "C:\Xray"
|
|
$env:XRAY_JSON_STRICT = "true"
|
|
```
|
|
|
|
```batch [CMD]
|
|
:: Задать переменные в текущем сеансе CMD и запущенных из него процессах
|
|
set "XRAY_LOCATION_ASSET=C:\Xray"
|
|
set "XRAY_JSON_STRICT=true"
|
|
```
|
|
|
|
```ini [systemd]
|
|
# Задать переменные в разделе [Service] службы Xray
|
|
[Service]
|
|
Environment="XRAY_LOCATION_ASSET=/usr/local/share/xray"
|
|
Environment="XRAY_JSON_STRICT=true"
|
|
```
|
|
|
|
:::
|
|
|
|
## Встроенные переменные Xray
|
|
|
|
### Путь к файлам ресурсов
|
|
|
|
- Имя: `xray.location.asset`.
|
|
- Значение по умолчанию: определённые каталоги [FHS](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard) или каталог исполняемого файла Xray.
|
|
|
|
Эта переменная задаёт каталог, содержащий файлы `geoip.dat` и `geosite.dat`.
|
|
Если она не указана, программа ищет файлы ресурсов в следующем порядке:
|
|
|
|
```text
|
|
./
|
|
/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`
|
|
|
|
Эти параметры предназначены для специализированных сценариев. Их точное назначение можно узнать из исходного кода.
|