Экспериментальное
Блок experimental объединяет четыре слабо связанные области функциональности: постоянный файл кэша, Clash-совместимый RESTful API, gRPC API статистики V2Ray и встроенный эндпоинт pprof / отладки рантайма.
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
cache_file | *CacheFileOptions | (unset) | CacheFileOptions | Постоянный кэш состояния. |
clash_api | *ClashAPIOptions | (unset) | ClashAPIOptions | Внешний контроллер, совместимый с панелями Clash. |
v2ray_api | *V2RayAPIOptions | (unset) | V2RayAPIOptions | gRPC-сервис статистики, совместимый с клиентами V2Ray. |
debug | *DebugOptions | (unset) | DebugOptions | Встроенный pprof-эндпоинт и настройка GC. |
Исходный код: option/experimental.go:5-10 · зафиксировано на v1.13.15 (3708fa1)
cache_file
Постоянный дисковый кэш для аренд fakeip, запоминания выбранного прокси, записей RDRC и похожего состояния времени выполнения.
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
enabled | bool | false | true | false | Включить файл кэша. |
path | string | cache.db | <file path> | Где хранить базу данных кэша. |
cache_id | string | (unset) | <string> | Префикс пространства имён внутри того же файла кэша. Полезно, когда один файл кэша делят несколько экземпляров sing-box. |
store_fakeip | bool | false | true | false | Сохранять таблицу аренд fakeip. |
store_rdrc | bool | false | true | false | Сохранять записи Reject-DNS-Resolution Cache (rdrc). |
rdrc_timeout | badoption.Duration | 7d | <duration> | Как долго записи rdrc остаются действительными в кэше. |
Исходный код: option/experimental.go:12-19 · зафиксировано на v1.13.15 (3708fa1)
clash_api
Полная реализация Clash RESTful API. Совместима с metacubexd, Yacd, Clash Dashboard и другими потребителями Clash API.
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
external_controller | string | (unset) | <host:port> | Адрес прослушивания RESTful API. |
external_ui | string | (unset) | <dir path> | Локальный каталог, раздаваемый как панель управления. |
external_ui_download_url | string | https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip | <URL> | Архив, автоматически скачиваемый, когда external_ui пуст. |
external_ui_download_detour | string | (direct) | <outbound tag> | Исходящий, используемый для скачивания. |
secret | string | (unset) | <bearer token> | Bearer-токен, требуемый для всех вызовов API. Настоятельно рекомендуется. |
default_mode | string | rule | rule | global | direct | <custom> | Начальный режим туннеля, сообщаемый через API. Допускаются пользовательские значения; нестандартные панели их игнорируют. |
access_control_allow_origin | badoption.Listable[string] | [] | <origin> | Список разрешённых origin (CORS) для API. |
access_control_allow_private_network | bool | false | true | false | Разрешить preflight-запросы из частных сетей. |
Исходный код: option/experimental.go:21-42 · зафиксировано на v1.13.15 (3708fa1)
Ещё пять полей (cache_file, cache_id, store_mode, store_selected, store_fakeip) — устаревшие перенаправления в блок cache_file; не используйте их в новых конфигурациях.
v2ray_api
V2Ray-совместимый gRPC API статистики. Полезен, если у вас есть существующий инструментарий (v2ray api stats query ...), который хочется продолжать использовать.
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
listen | string | (required) | <host:port> | Адрес прослушивания gRPC для StatsService. |
stats | *V2RayStatsServiceOptions | (unset) | V2RayStatsServiceOptions | Выбор счётчиков. |
Исходный код: option/experimental.go:44-47 · зафиксировано на v1.13.15 (3708fa1)
v2ray_api.stats
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
enabled | bool | false | true | false | Включить сервис статистики. |
inbounds | []string | [] | <inbound tag> | Теги входящих, для которых считать трафик. |
outbounds | []string | [] | <outbound tag> | Теги исходящих, для которых считать трафик. |
users | []string | [] | <user name> | Счётчики по отдельным пользователям. |
Исходный код: option/experimental.go:49-54 · зафиксировано на v1.13.15 (3708fa1)
debug
Блок настройки Go-рантайма. Большинство полей — прямые ручки пакетов runtime и runtime/debug. Поле listen открывает стандартные обработчики net/http/pprof.
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
listen | string | (unset) | <host:port> | Адрес прослушивания pprof-эндпоинта (например, 127.0.0.1:6060). |
gc_percent | *int | (Go default) | <int> | -1 | Переопределение GOGC. Значение -1 отключает сборку мусора. |
max_stack | *int | (Go default) | <bytes> | Потолок стека на горутину. |
max_threads | *int | (Go default) | <int> | Ограничение числа потоков в духе GOMAXPROCS. |
panic_on_fault | *bool | false | true | false | Преобразовывать невосстановимые сбои рантайма в панику с трассировкой стека. |
trace_back | string | (Go default) | none | single | all | system | crash | Настройка GOTRACEBACK. |
memory_limit | *byteformats.MemoryBytes | (unset) | <bytes/MiB/GiB> | Мягкий предел памяти; принимает простые числа (байты) или значения с суффиксом вроде 256MiB. |
oom_killer | *bool | false | true | false | Аварийно завершать процесс, когда memory_limit превышен слишком долго. |
Исходный код: option/debug.go:5-14 · зафиксировано на v1.13.15 (3708fa1)
Пример
{
"experimental": {
"cache_file": {
"enabled": true,
"path": "cache.db",
"store_fakeip": true
},
"clash_api": {
"external_controller": "127.0.0.1:9090",
"secret": "<random>",
"external_ui": "/etc/sing-box/ui"
},
"debug": {
"listen": "127.0.0.1:6060",
"memory_limit": "256MiB"
}
}
}Примечания
- Устаревшие поля кэша в
clash_api(cache_file,cache_id,store_mode,store_selected,store_fakeip) по-прежнему разбираются, но при загрузке выдают предупреждения и будут удалены в будущем релизе. Все пять перенаправляются в блокcache_file. debug.memory_limitпринимает как простые числа (байты), так и литералы с суффиксом вроде"256MiB"или"2GiB"; разбор выполняетbyteformats.MemoryBytes.
Исходный код: option/experimental.go:5-54 · v1.13.15 (3708fa1)
