sing-box — ساختار پیکربندی
sing-box هنگام راهاندازی یک سند JSON منفرد را میخواند. شیء ریشه به ساختار Go به نام _Options در option/options.go:12 نگاشت میشود (از طریق یک ناممستعار نوع بهصورت Options صادر میشود که UnmarshalJSONContext آن بررسی سختگیرانهٔ فیلد ناشناخته را اعمال میکند — اشتباهات تایپی در پیکربندی شما باعث خطای راهاندازی میشوند، نه نادیدهگرفتن خاموش).
کلیدهای ریشه
| کلید | فیلد Go | نوع | صفحه | توضیح |
|---|---|---|---|---|
$schema | Schema | string | (هیچ) | URL طرحوارهٔ JSON؛ در زمان اجرا نادیده گرفته میشود. |
log | Log | *LogOptions | گزارش | سطح شدت، خروجی، برچسب زمانی، کلید غیرفعالسازی. |
dns | DNS | *DNSOptions | DNS — فاز ۵ | سرورهای DNS، قواعد، hosts، fakeip. |
ntp | NTP | *NTPOptions | NTP | کلاینت NTP اختیاری تعبیهشده. |
certificate | Certificate | *CertificateOptions | گواهی | منبع بستهٔ Root-CA برای تأیید TLS. |
endpoints | Endpoints | []Endpoint | نقاطانتهایی — فاز ۳ | ورودی/خروجی نقطهانتهایی (WireGuard، Tailscale). |
inbounds | Inbounds | []Inbound | ورودیها — فاز ۳ | فهرست سرویسهای شنونده. |
outbounds | Outbounds | []Outbound | خروجیها — فاز ۳ | فهرست مقاصد بالادست. |
route | Route | *RouteOptions | مسیر — فاز ۵ | قواعد مسیریابی، rule-set، خروجی پیشفرض. |
services | Services | []Service | سرویسها — فاز ۶ | سرویسهای پسزمینه (resolved، derp، ssm-api). |
experimental | Experimental | *ExperimentalOptions | آزمایشی | فایل کش، Clash API، V2Ray API، اشکالزدایی pprof. |
صفحات نشانگذاریشده با فاز ۳/۵/۶ در آن فازهای بعدی منتشر میشوند؛ این ستون اینجا قرار دارد تا چیدمان امروز کامل باشد.
یک نگاه
json
{
"log": { "level": "info", "timestamp": true },
"dns": { "servers": [{ "tag": "google", "address": "tls://8.8.8.8" }] },
"ntp": { "enabled": true, "server": "time.cloudflare.com" },
"certificate": { "store": "system" },
"inbounds": [],
"outbounds": [],
"route": { "final": "direct" },
"experimental": {
"cache_file": { "enabled": true },
"clash_api": { "external_controller": "127.0.0.1:9090" }
}
}منبع: option/options.go:12-25 · v1.13.11 (553cfa1)
