آزمایشی
بلوک experimental چهار حوزهٔ ویژگی نسبتاً مرتبط را حمل میکند: فایل کش پایدار، RESTful API سازگار با Clash، API آمار gRPC سازگار با 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.11 (553cfa1)
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.11 (553cfa1)
clash_api
یک پیادهسازی drop-in از 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> | بستهٔ tarball که وقتی 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> | فهرست مجاز CORS برای API. |
access_control_allow_private_network | bool | false | true | false | اجازهٔ درخواستهای preflight شبکههای خصوصی. |
منبع: option/experimental.go:21-42 · ثابتشده در v1.13.11 (553cfa1)
پنج فیلد اضافی (cache_file، cache_id، store_mode، store_selected، store_fakeip) فیلدهای منسوخشدهای هستند که به بلوک cache_file ارجاع داده میشوند — آنها را از پیکربندیهای جدید خارج نگه دارید.
v2ray_api
API آمار gRPC سازگار با V2Ray. اگر ابزارهای موجود (v2ray api stats query ...) دارید که میخواهید همچنان از آنها استفاده کنید، مفید است.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
listen | string | (required) | <host:port> | آدرس شنود gRPC برای StatsService. |
stats | *V2RayStatsServiceOptions | (unset) | V2RayStatsServiceOptions | انتخاب شمارنده. |
منبع: option/experimental.go:44-47 · ثابتشده در v1.13.11 (553cfa1)
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.11 (553cfa1)
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> | سقف پشتهٔ هر goroutine. |
max_threads | *int | (Go default) | <int> | سقف رشته به سبک GOMAXPROCS. |
panic_on_fault | *bool | false | true | false | تبدیل خرابیهای ترمیمناپذیر زمان اجرا به panic با اثر پشته. |
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.11 (553cfa1)
مثال
{
"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.11 (553cfa1)
