sing-box — ساختار پیکربندی
sing-box هنگام راهاندازی یک سند JSON منفرد را میخواند. شیء ریشه به ساختار Go به نام _Options در option/options.go:14 نگاشت میشود (از طریق یک ناممستعار نوع بهصورت Options صادر میشود که UnmarshalJSONContext آن بررسی سختگیرانهٔ فیلد ناشناخته را اعمال میکند — اشتباهات تایپی در پیکربندی شما باعث خطای راهاندازی میشوند، نه نادیدهگرفتن خاموش).
کلیدهای ریشه
| کلید | فیلد Go | نوع | صفحه | توضیح |
|---|---|---|---|---|
$schema | Schema | string | (هیچ) | URI طرحوارهٔ JSON برای تکمیل خودکار / اعتبارسنجی در ویرایشگر؛ اثری در زمان اجرا ندارد. sing-box schema طرحوارهای مطابق ساخت فعلی تولید میکند. |
log | Log | *LogOptions | گزارش | سطح شدت، خروجی، برچسب زمانی، کلید غیرفعالسازی. |
dns | DNS | *DNSOptions | DNS | سرورهای DNS، قواعد، hosts، fakeip. |
ntp | NTP | *NTPOptions | NTP | کلاینت NTP اختیاری تعبیهشده. |
certificate | Certificate | *CertificateOptions | گواهی | منبع بستهٔ Root-CA برای تأیید TLS. |
certificate_providers | CertificateProviders | []CertificateProvider | TLS | تأمینکنندگان گواهی قابلاستفادهٔ مجدد (acme، tailscale، cloudflare-origin-ca) که با tag از certificate_provider در TLS ورودی ارجاع داده میشوند. |
http_clients | HTTPClients | []HTTPClient | (هیچ) | کلاینتهای HTTP قابلاستفادهٔ مجدد (موتور، نسخه، شمارهگیر، TLS، پارامترهای HTTP/2 / QUIC) برای rule-setهای راه دور، تأمینکنندگان گواهی و verify_client_url در DERP. |
network_namespaces | NetworkNamespaces | []NetworkNamespace | TUN | فضاینامهای شبکهٔ Linux (default، unshare) که با tag از فیلدهای netns در TUN، شنود و شمارهگیری ارجاع داده میشوند. |
endpoints | Endpoints | []Endpoint | نقاطانتهایی | ورودی/خروجی نقطهانتهایی (WireGuard، Tailscale، کلاینت / سرور OpenVPN و OpenConnect). |
inbounds | Inbounds | []Inbound | ورودیها | فهرست سرویسهای شنونده. |
outbounds | Outbounds | []Outbound | خروجیها | فهرست مقاصد بالادست. |
route | Route | *RouteOptions | مسیر | قواعد مسیریابی، rule-set، خروجی پیشفرض. |
services | Services | []Service | سرویسها | سرویسهای پسزمینه (resolved، derp، ssm-api، api، hysteria-realm، usbip-server / usbip-client). |
experimental | Experimental | *ExperimentalOptions | آزمایشی | فایل کش، Clash API، V2Ray API، اشکالزدایی pprof. |
هر سرور DNS یک type اعلام میکند؛ قالب بینوع "address": "tls://…" پشتیبانی نمیشود (به DNS مراجعه کنید).
یک نگاه
json
{
"log": { "level": "info", "timestamp": true },
"dns": { "servers": [{ "type": "tls", "tag": "google", "server": "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:14-31 · v1.14.2 (af6e64c)
