mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-10-12 17:28:16 +03:00
Xray-core: Add Lua script for dns and routing
https://github.com/XTLS/Xray-core/pull/6823
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Среда выполнения и загрузка скриптов
|
||||
|
||||
## Среда Lua
|
||||
|
||||
Сейчас используется GopherLua, который поддерживает синтаксис Lua 5.1, оператор `goto` из Lua 5.2 и собственный [`channel`](https://github.com/yuin/gopher-lua#lua-api).
|
||||
|
||||
Xray загружает скрипты Lua согласно файлу конфигурации. Положение настройки определяет назначение скрипта и доступные Hook. Hook каждой точки входа и соглашения об их вызове описаны в [справочнике Hook](./index.md#hook).
|
||||
|
||||
## Загрузка модулей
|
||||
|
||||
Модули API организованы по назначению и загружаются через `require`:
|
||||
|
||||
```lua
|
||||
local geodata = require("xray.geodata")
|
||||
local log = require("xray.log")
|
||||
```
|
||||
|
||||
Список модулей приведён в разделе [API модулей](./index.md#api-модулеи), а использование функций — в соответствующих справочниках API.
|
||||
|
||||
Когда выполняется инициализация верхнего уровня, включая загрузку модулей Lua и создание объектов, описано в разделе [Экземпляры и жизненный цикл](./guide/lifecycle.md).
|
||||
|
||||
## Пути к файлам скриптов
|
||||
|
||||
Поле `script` в конфигурации задаёт путь к файлу скрипта Lua. Пустая строка или отсутствие поля отключает скрипт; абсолютный путь указывает файл напрямую.
|
||||
|
||||
Относительные пути проверяются в следующем порядке. Если путь не существует, поиск продолжается; если он существует, но не является обычным файлом, сразу возникает ошибка:
|
||||
|
||||
1. Каталог, указанный переменной окружения `XRAY_LOCATION_CONFDIR`;
|
||||
2. Каталог, указанный переменной окружения `XRAY_LOCATION_CONFIG`;
|
||||
3. Текущий рабочий каталог процесса Xray;
|
||||
4. Каталог исполняемого файла Xray.
|
||||
|
||||
Настройка этих каталогов описана в разделе [Переменные окружения](../../config/env.md). Относительные пути не отсчитываются автоматически от каталога файла конфигурации.
|
||||
|
||||
Например, если путь скрипта задан как `routing.lua`, Xray ищет файл в указанном выше порядке. Абсолютный путь Windows можно записать как `C:/Xray/routing.lua`; при использовании обратной косой черты экранируйте её согласно требованиям формата конфигурации.
|
||||
Reference in New Issue
Block a user