Skip to content

Direct — sing-box

Direct خروجی passthrough در sing-box و یک ورودی مفید «test echo» است. سمت خروجی در نسخه‌های اخیر عمداً کاهش یافته است — آنچه قبلاً override_address / override_port در خروجی بود اکنون مسئلهٔ موتور مسیریابی است.

ورودی

type: "direct":

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
networkNetworkList(tcp+udp)tcp | udp | محدود کردن به فقط TCP یا فقط UDP.
override_addressstring(unset)<host>بازنویسی آدرس مقصد هر اتصال پذیرفته‌شده.
override_portuint16(unset)<port>بازنویسی پورت مقصد هر اتصال پذیرفته‌شده.

منبع: option/direct.go:10-15 · ثابت‌شده در v1.13.11 (553cfa1)

ListenOptions (آدرس شنود، پورت، sniff، …) را درون خود جای می‌دهد. ورودی Direct بیشتر به‌عنوان یک port-forwarder استفاده می‌شود — پذیرفتن روی یک پورت، بازنویسی مقصد، مسیریابی از طریق هر خروجی.

خروجی

type: "direct":

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
override_addressstring(rejected)(use route actions)در sing-box 1.13 حذف شد. اکنون تنظیم آن یک خطای راه‌اندازی تولید می‌کند که به route actions اشاره می‌کند.
override_portuint16(rejected)(use route actions)همانند override_address — حذف شده؛ از route actions استفاده کنید.
proxy_protocoluint8(removed)0کاملاً حذف شده. روی هر مقدار غیرصفر تنظیم کنید و parser خطای حذف-منسوخ را علامت می‌زند.

منبع: option/direct.go:17-25 · ثابت‌شده در v1.13.11 (553cfa1)

خروجی اکنون فقط از DialerOptions تعبیه‌شده (bind_interface، routing_mark، detour، …) تشکیل شده است. هر سه فیلد قدیمی بالا در زمان بارگذاری پیکربندی رد می‌شوند:

destination override fields in direct outbound are deprecated in
sing-box 1.11.0 and removed in sing-box 1.13.0, use route options
instead

مثال‌ها

خروجی direct خام (رایج‌ترین حالت — فقط یک خروج به ترافیک می‌دهد):

json
{
  "outbounds": [
    { "type": "direct", "tag": "direct" }
  ]
}

خروجی direct متصل به یک رابط خاص:

json
{
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct-eth0",
      "bind_interface": "eth0"
    }
  ]
}

ورودی port-forwarder (پذیرفتن روی ۸۰۸۰، بازنویسی مقصد به internal:80):

json
{
  "inbounds": [
    {
      "type": "direct",
      "tag": "forward-8080",
      "listen": "0.0.0.0",
      "listen_port": 8080,
      "override_address": "10.0.0.5",
      "override_port": 80
    }
  ]
}

نکات

  • جایگزین route-action برای override_address / override_port این‌گونه است:

    json
    {
      "route": {
        "rules": [
          {
            "inbound": ["forward-8080"],
            "action": "route",
            "outbound": "direct",
            "override_address": "10.0.0.5",
            "override_port": 80
          }
        ]
      }
    }

    این کار همان رفتار را از لایهٔ پروتکل به قاعدهٔ مسیریابی منتقل می‌کند، که تمیزتر با بقیهٔ سطح مسیریابی ترکیب می‌شود.

نکات بین‌هسته‌ای

  • Xray-core این را Freedom می‌نامد. خروجی مجموعه‌ای از امکانات بسیار غنی‌تر را ارائه می‌دهد — قطعه‌قطعه‌سازی TCP/TLS، تزریق نویز، فیلد redirect — به Freedom — Xray-core مراجعه کنید.
  • mihomo همان شکل حداقلی Direct را دارد و یک پراکسی نام‌گذاری‌شدهٔ داخلی به نام DIRECT را به‌طور خودکار تزریق می‌کند. به Direct — mihomo مراجعه کنید.

منبع: option/direct.go:10-25 · v1.13.11 (553cfa1)

Core Tutorial اثر Argsment