mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-10-12 09:18:19 +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,46 @@
|
||||
# Скрипты Lua
|
||||
|
||||
Скрипты Lua позволяют гибко расширять Xray, реализовывать собственные функции и взаимодействовать с ядром.
|
||||
|
||||
## Начало работы
|
||||
|
||||
Сначала прочитайте [Среда выполнения и загрузка скриптов](./environment.md), чтобы узнать о поддержке Lua, загрузке модулей и правилах поиска файлов скриптов.
|
||||
|
||||
## Руководства по написанию
|
||||
|
||||
Выберите руководство для нужной функции, начните с минимального примера и постепенно создайте собственный скрипт:
|
||||
|
||||
| Руководство | Назначение | Содержание |
|
||||
| ------------------------------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| [Скрипты маршрутизации](./guide/routing.md) | Собственные правила маршрутизации | Выбор исходящего подключения, балансировка нагрузки и маршрутизация по IP после явного разрешения домена |
|
||||
| [Скрипты DNS](./guide/dns.md) | Собственная обработка DNS-запросов | Выбор вышестоящего сервера, резервные запросы и фильтрация результатов |
|
||||
|
||||
Текущие скрипты маршрутизации и DNS используют экземпляры из пула. При написании скриптов учитывайте [жизненный цикл пула](./guide/lifecycle.md#жизненныи-цикл-пула), чтобы понимать, когда выполняется инициализация верхнего уровня и как сохраняется состояние.
|
||||
|
||||
## Справочник
|
||||
|
||||
### Hook
|
||||
|
||||
Hook — это функция Lua, которую ядро вызывает в определённый момент. Точка входа скрипта определяет доступные Hook и соглашения об их вызове; одной точке входа могут соответствовать несколько Hook. Какие именно Hook нужно реализовать, указано в описании соответствующей точки входа.
|
||||
|
||||
Сейчас поддерживаются следующие точки входа и Hook. Параметры, возвращаемые значения и поведение при ошибках описаны на справочных страницах каждого Hook:
|
||||
|
||||
| Точка входа скрипта | Hook |
|
||||
| ------------------- | ------------------------------------------ |
|
||||
| `routing.script` | [HandleRoute](./reference/hook-routing.md) |
|
||||
| `dns.script` | [HandleDNSQuery](./reference/hook-dns.md) |
|
||||
|
||||
### Типы данных
|
||||
|
||||
Помимо встроенных типов Lua, Xray Lua использует `net.IP`, срезы Go и `error`. Их представление и способы работы с ними в Lua описаны в разделе [Типы данных](./reference/data-types.md).
|
||||
|
||||
### API модулей
|
||||
|
||||
Выберите API модуля по назначению:
|
||||
|
||||
| Модуль | Назначение |
|
||||
| --------------------------------------------- | --------------------------------------- |
|
||||
| [xray.router](./reference/module-router.md) | Маршрутизация по правилам |
|
||||
| [xray.dns](./reference/module-dns.md) | Разрешение доменных имён |
|
||||
| [xray.geodata](./reference/module-geodata.md) | Сопоставление и фильтрация доменов и IP |
|
||||
| [xray.log](./reference/module-log.md) | Запись журналов |
|
||||
Reference in New Issue
Block a user