Skip to content

sing-box — ساختار پیکربندی ​

sing-box هنگام راه‌اندازی یک سند JSON منفرد را می‌خواند. شیء ریشه به ساختار Go به نام _Options در option/options.go:14 نگاشت می‌شود (از طریق یک نام‌مستعار نوع به‌صورت Options صادر می‌شود که UnmarshalJSONContext آن بررسی سخت‌گیرانهٔ فیلد ناشناخته را اعمال می‌کند — اشتباهات تایپی در پیکربندی شما باعث خطای راه‌اندازی می‌شوند، نه نادیده‌گرفتن خاموش).

کلیدهای ریشه ​

کلیدفیلد Goنوعصفحهتوضیح
$schemaSchemastring(هیچ)URI طرحوارهٔ JSON برای تکمیل خودکار / اعتبارسنجی در ویرایشگر؛ اثری در زمان اجرا ندارد. sing-box schema طرحواره‌ای مطابق ساخت فعلی تولید می‌کند.
logLog*LogOptionsگزارشسطح شدت، خروجی، برچسب زمانی، کلید غیرفعال‌سازی.
dnsDNS*DNSOptionsDNSسرورهای DNS، قواعد، hosts، fakeip.
ntpNTP*NTPOptionsNTPکلاینت NTP اختیاری تعبیه‌شده.
certificateCertificate*CertificateOptionsگواهیمنبع بستهٔ Root-CA برای تأیید TLS.
certificate_providersCertificateProviders[]CertificateProviderTLSتأمین‌کنندگان گواهی قابل‌استفادهٔ مجدد (acme، tailscale، cloudflare-origin-ca) که با tag از certificate_provider در TLS ورودی ارجاع داده می‌شوند.
http_clientsHTTPClients[]HTTPClient(هیچ)کلاینت‌های HTTP قابل‌استفادهٔ مجدد (موتور، نسخه، شماره‌گیر، TLS، پارامترهای HTTP/2 / QUIC) برای rule-setهای راه دور، تأمین‌کنندگان گواهی و verify_client_url در DERP.
network_namespacesNetworkNamespaces[]NetworkNamespaceTUNفضای‌نام‌های شبکهٔ Linux (default، unshare) که با tag از فیلدهای netns در TUN، شنود و شماره‌گیری ارجاع داده می‌شوند.
endpointsEndpoints[]Endpointنقاط‌انتهاییورودی/خروجی نقطه‌انتهایی (WireGuard، Tailscale، کلاینت / سرور OpenVPN و OpenConnect).
inboundsInbounds[]Inboundورودی‌هافهرست سرویس‌های شنونده.
outboundsOutbounds[]Outboundخروجی‌هافهرست مقاصد بالادست.
routeRoute*RouteOptionsمسیرقواعد مسیریابی، rule-set، خروجی پیش‌فرض.
servicesServices[]Serviceسرویس‌هاسرویس‌های پس‌زمینه (resolved، derp، ssm-api، api، hysteria-realm، usbip-server / usbip-client).
experimentalExperimental*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)

Core Tutorial اثر Argsment