Skip to content

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

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

کلیدهای ریشه

کلیدفیلد Goنوعصفحهتوضیح
$schemaSchemastring(هیچ)URL طرحوارهٔ JSON؛ در زمان اجرا نادیده گرفته می‌شود.
logLog*LogOptionsگزارشسطح شدت، خروجی، برچسب زمانی، کلید غیرفعال‌سازی.
dnsDNS*DNSOptionsDNSسرورهای DNS، قواعد، hosts، fakeip.
ntpNTP*NTPOptionsNTPکلاینت NTP اختیاری تعبیه‌شده.
certificateCertificate*CertificateOptionsگواهیمنبع بستهٔ Root-CA برای تأیید TLS.
endpointsEndpoints[]Endpointنقاط‌انتهاییورودی/خروجی نقطه‌انتهایی (WireGuard، Tailscale).
inboundsInbounds[]Inboundورودی‌هافهرست سرویس‌های شنونده.
outboundsOutbounds[]Outboundخروجی‌هافهرست مقاصد بالادست.
routeRoute*RouteOptionsمسیرقواعد مسیریابی، rule-set، خروجی پیش‌فرض.
servicesServices[]Serviceسرویس‌هاسرویس‌های پس‌زمینه (resolved، derp، ssm-api).
experimentalExperimental*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.15 (3708fa1)

Core Tutorial اثر Argsment